Sha256: c8ee1b50773a1454ff1cc046101983ce9c6cd9e2f31385f9b3e24c46f44bec65
Contents?: true
Size: 1.39 KB
Versions: 1
Compression:
Stored size: 1.39 KB
Contents
#!/usr/bin/env ruby Process.setproctitle($0) # 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 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 Riemann::Bench.new.run
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
riemann-tools-1.0.0 | bin/riemann-bench |