class Riemann::Tools::Storm
Constants
- CLUSTER_KEYS
- TOPOLOGY_KEYS
Public Instance Methods
storm_api(path)
click to toggle source
# File bin/riemann-storm, line 64 def storm_api(path) return get_json("#{opts[:storm_ui]}#{path}") end
tick()
click to toggle source
# File bin/riemann-storm, line 20 def tick begin storm_host = URI(opts[:storm_ui]).host summary = storm_api '/api/v1/cluster/summary' CLUSTER_KEYS.each do |key| if summary.key?(key) state = 'ok' state = 'warning' if key == 'slotsUsed' && (summary[key].to_f / summary['slotsTotal'].to_f >= 0.9) report({ :service => "storm #{key}", :metric => summary[key], :state => state, :host => storm_host }) end end topologies = storm_api '/api/v1/topology/summary' topologies['topologies'].each do |topology| svc = "storm-topology #{topology['name']}" if topology['status'] == 'ACTIVE' state = 'ok' elsif topology['status'] == 'KILLED' state = 'critical' else state = 'warning' end report({ :service => "#{svc} status", :state => state, :host => storm_host }) TOPOLOGY_KEYS.each do |key| report({ :service => "#{svc} #{key}", :metric => topology[key], :host => storm_host }) end end end end