module Eye::Process::Notify
Constants
- LEVELS
notify to user: 1) process crashed by itself, and we restart it [:info] 2) checker bounded to restart process [:warn] 3) flapping + switch to unmonitored [:error]
Public Class Methods
included(base)
click to toggle source
# File lib/eye/process/notify.rb, line 3 def self.included(base) base.class_eval do trap_exit :notify_died end end
Public Instance Methods
notify(level, msg)
click to toggle source
# File lib/eye/process/notify.rb, line 16 def notify(level, msg) # logging it error "NOTIFY: #{msg}" if ilevel(level) > ilevel(:info) # send notifies if self[:notify].present? message = {:message => msg, :name => name, :full_name => full_name, :pid => pid, :host => Eye::Local.host, :level => level, :at => Time.now } self[:notify].each do |contact, not_level| Eye::Notify.notify(contact, message) if ilevel(level) >= ilevel(not_level) end end end
notify_died(actor, reason)
click to toggle source
# File lib/eye/process/notify.rb, line 32 def notify_died(actor, reason) error "NOTIFY DIED: #{actor.inspect} has died because of a #{reason.class}" end
Private Instance Methods
ilevel(level)
click to toggle source
# File lib/eye/process/notify.rb, line 38 def ilevel(level) LEVELS[level].to_i end