bin/riemann-bench in riemann-tools-1.0.0 vs bin/riemann-bench in riemann-tools-1.1.0

- old
+ new

@@ -1,70 +1,75 @@ #!/usr/bin/env ruby -Process.setproctitle($0) +# 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 'rubygems' require 'riemann/client' require 'pp' -class Riemann::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 +module Riemann + class Bench + attr_accessor :client, :hosts, :services, :states - def evolve(state) - m = state[:metric] + (rand - 0.5) * 0.1 - m = [[0,m].max, 1].min + 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 - s = case m - when 0...0.75 - 'ok' - when 0.75...0.9 - 'warning' - when 0.9..1.0 - 'critical' + 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 - { - :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])) + def tick + # pp @states + hosts.product(services).each do |id| + client << (states[id] = evolve(states[id])) + end end - end - def run - start - loop do - sleep 0.05 - tick + def run + start + loop do + sleep 0.05 + tick + end 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 - } + 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