class InfluxDB::Metrics::Controller

Public Instance Methods

handle(_name, start, finish, _id, payload) click to toggle source
# File lib/influxdb/metrics/controller.rb, line 11
def handle(_name, start, finish, _id, payload)
  metric = shared_info(start, finish, payload)
  timing = duration(start, finish)

  view = (payload[:view_runtime] || 0).ceil
  db =  (payload[:db_runtime] || 0).ceil

  write_point 'controller', metric.merge(value: timing)
  write_point 'view', metric.merge(value: view)
  write_point 'db', metric.merge(value: db)
rescue => e
  log :debug, "Unable to process action: #{e.message}"
end
subscribe_to() click to toggle source
# File lib/influxdb/metrics/controller.rb, line 7
def subscribe_to
  'process_action.action_controller'
end

Private Instance Methods

request_format(fmt) click to toggle source
# File lib/influxdb/metrics/controller.rb, line 36
def request_format(fmt)
  (fmt.nil? || fmt == '*/*') ? 'all' : fmt
end
shared_info(start, finish, payload) click to toggle source
# File lib/influxdb/metrics/controller.rb, line 27
def shared_info(start, finish, payload)
  {
    hostname: Socket.gethostname,
    action: "#{payload[:controller]}##{payload[:action]}",
    format: request_format(payload[:format]),
    status: payload[:status]
  }
end