class Bosh::Monitor::DirectorMonitor
Public Class Methods
new(config)
click to toggle source
# File lib/bosh/monitor/director_monitor.rb, line 3 def initialize(config) @nats = config.nats @logger = config.logger @event_processor = config.event_processor end
Public Instance Methods
subscribe()
click to toggle source
# File lib/bosh/monitor/director_monitor.rb, line 9 def subscribe EM.schedule do @nats.subscribe('hm.director.alert') do |message, _, subject| @logger.debug("RECEIVED: #{subject} #{message}") alert = Yajl::Parser.parse(message) if valid_payload?(alert) @event_processor.process(:alert, alert) end end end end
Private Instance Methods
valid_payload?(payload)
click to toggle source
# File lib/bosh/monitor/director_monitor.rb, line 24 def valid_payload?(payload) missing_keys = %w(id severity title summary created_at) - payload.keys valid = missing_keys.empty? unless valid first_missing_key = missing_keys.first @logger.error("Invalid payload from director: the key '#{first_missing_key}' was missing. #{payload.inspect}") end valid end