Class: Riemann::Metrics::NotificationsHandler

Inherits:
Object
  • Object
show all
Defined in:
lib/riemann/metrics/notifications_handler.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(client) ⇒ NotificationsHandler

Returns a new instance of NotificationsHandler.



7
8
9
# File 'lib/riemann/metrics/notifications_handler.rb', line 7

def initialize client
  @client = client
end

Instance Attribute Details

#clientObject (readonly)

Returns the value of attribute client.



5
6
7
# File 'lib/riemann/metrics/notifications_handler.rb', line 5

def client
  @client
end

Instance Method Details

#deliver_action_mailer(channel, start, finish, id, payload) ⇒ Object



25
26
27
28
29
# File 'lib/riemann/metrics/notifications_handler.rb', line 25

def deliver_action_mailer channel, start, finish, id, payload
  tags = [ payload[:mailer] ]
  state = !payload[:exception].nil? ? Riemann::Metrics::Client::CRITICAL : Riemann::Metrics::Client::OK
  client.gauge (tags.dup << 'email_send_runtime'), state, total_time(start, finish), "#{payload[:mailer]}.email_send_runtime"
end

#process_action_action_controller(channel, start, finish, id, payload) ⇒ Object



15
16
17
18
19
20
21
22
23
# File 'lib/riemann/metrics/notifications_handler.rb', line 15

def process_action_action_controller channel, start, finish, id, payload
  tags = [payload[:controller], payload[:action]]
  service_name = tags.join(".")
  state = !payload[:exception].nil? ? Riemann::Metrics::Client::CRITICAL : Riemann::Metrics::Client::OK
  client.gauge (tags.dup << 'http_status'), state, payload[:status], "#{service_name}.http_status"
  client.gauge (tags.dup << 'view_runtime'), state, payload[:view_runtime], "#{service_name}.view_runtime"
  client.gauge (tags.dup << 'request_runtime'), state, total_time(start, finish), "#{service_name}.total_time"
  client.gauge (tags.dup << 'db_runtime'), state, payload[:db_runtime], "#{service_name}.db_runtime"
end

#total_time(start, finish) ⇒ Object



11
12
13
# File 'lib/riemann/metrics/notifications_handler.rb', line 11

def total_time start, finish
  ( finish - start ) * 1000
end