Class: AppMonit::Event

Inherits:
Object
  • Object
show all
Defined in:
lib/app_monit/event.rb

Class Method Summary collapse

Class Method Details

.clientObject



38
39
40
# File 'lib/app_monit/event.rb', line 38

def self.client
  Http
end

.create(*args) ⇒ Object



5
6
7
8
9
10
11
12
13
# File 'lib/app_monit/event.rb', line 5

def self.create(*args)
  create!(*args)
rescue Http::Error
  false
rescue Timeout::Error, Errno::EINVAL, Errno::ECONNRESET, EOFError, Net::HTTPBadResponse,
    Net::HTTPHeaderSyntaxError, Net::ProtocolError, Errno::ETIMEDOUT, Errno::ECONNREFUSED => error
  raise error unless AppMonit::Config.fail_silent
  false
end

.create!(name, data_hash = {}) ⇒ Object



15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/app_monit/event.rb', line 15

def self.create!(name, data_hash = {})
  return false unless AppMonit::Config.enabled?
  created_at = data_hash.delete(:created_at) || Time.now.utc

  message = { created_at: created_at, name: name }

  message[:api_key]     = data_hash.delete(:api_key) if data_hash[:api_key]
  message[:environment] = data_hash.delete(:environment) if data_hash[:environment]

  message[:payload] = data_hash

  post(message)
end

.post(message) ⇒ Object



29
30
31
32
33
34
35
36
# File 'lib/app_monit/event.rb', line 29

def self.post(message)
  if AppMonit::Config.async?
    AppMonit.logger.debug("[Event] push: #{message}")
    AppMonit::Worker.instance.push(message)
  else
    client.post('/v1/events', message)
  end
end