Module: Eye::Process::Notify

Included in:
ChildProcess, Eye::Process
Defined in:
lib/eye/process/notify.rb

Constant Summary collapse

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]

{ debug: 0, info: 1, warn: 2, error: 3, fatal: 4 }.freeze

Instance Method Summary collapse

Instance Method Details

#notify(level, msg) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/eye/process/notify.rb', line 10

def notify(level, msg)
  # logging it
  error "NOTIFY: #{msg}" if ilevel(level) > ilevel(:info)

  return if self[:notify].blank?

  # send notifies
  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