Advertisement
Guest User

Untitled

a guest
Apr 27th, 2017
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 0.68 KB | None | 0 0
  1. require 'sensu-mutator'
  2. require 'net/http'
  3.  
  4. class Mute < Sensu::Mutator
  5.   def mutate
  6.     result = []
  7.     client = @event['client']
  8.     check  = @event['check']
  9.  
  10.     perfdata = check['output'].split('|').last.strip
  11.  
  12.     perfdata.split(/\s+/).each do |data|
  13.       # label=value[UOM];[warn];[crit];[min];[max]
  14.       label, value = data.split('=')
  15.  
  16.       name = label.strip.gsub(/\W/, '_')
  17.       measurement = value.strip.split(';').first.gsub(/[^-\d\.]/, '')
  18.  
  19.       path = [client['name'], check['name'], name].join('.')
  20.  
  21.       result << [path, measurement, check['executed']].join("\t")
  22.       @event['check']['output'] = result
  23.     end
  24.     puts result.join("\n")
  25.   end
  26.  
  27. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement