bin/riemann-bench in riemann-tools-1.1.1 vs bin/riemann-bench in riemann-tools-1.2.0

- old
+ new

@@ -1,76 +1,8 @@ #!/usr/bin/env ruby # frozen_string_literal: true Process.setproctitle($PROGRAM_NAME) -# Connects to a server (first arg) and populates it with a constant stream of -# events for testing. +require 'riemann/tools/bench' -require 'rubygems' -require 'riemann/client' -require 'pp' - -module Riemann - class Bench - attr_accessor :client, :hosts, :services, :states - - def initialize - @hosts = [nil] + (0...10).map { |i| "host#{i}" } - @hosts = %w[a b c d e f g h i j] - @services = %w[test1 test2 test3 foo bar baz xyzzy attack cat treat] - @states = {} - @client = Riemann::Client.new(host: (ARGV.first || 'localhost')) - end - - def evolve(state) - m = state[:metric] + (rand - 0.5) * 0.1 - m = [[0, m].max, 1].min - - s = case m - when 0...0.75 - 'ok' - when 0.75...0.9 - 'warning' - when 0.9..1.0 - 'critical' - end - - { - metric: m, - state: s, - host: state[:host], - service: state[:service], - description: "at #{Time.now}", - } - end - - def tick - # pp @states - hosts.product(services).each do |id| - client << (states[id] = evolve(states[id])) - end - end - - def run - start - loop do - sleep 0.05 - tick - end - end - - def start - hosts.product(services).each do |host, service| - states[[host, service]] = { - metric: 0.5, - state: 'ok', - description: 'Starting up', - host: host, - service: service, - } - end - end - end -end - -Riemann::Bench.new.run +Riemann::Tools::Bench.new.run