class Riemann::Metrics::NotificationsHandler

Attributes

client[R]

Public Class Methods

new(client) click to toggle source
# File lib/riemann/metrics/notifications_handler.rb, line 7
def initialize client
  @client = client
end

Public Instance Methods

deliver_action_mailer(channel, start, finish, id, payload) click to toggle source
# 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) click to toggle source
# 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) click to toggle source
# File lib/riemann/metrics/notifications_handler.rb, line 11
def total_time start, finish
  ( finish - start ) * 1000
end