class Honeybadger::NotificationSubscriber
Public Instance Methods
Source
# File lib/honeybadger/notification_subscriber.rb, line 12 def finish(name, id, payload) finish_time = ::Process.clock_gettime(::Process::CLOCK_MONOTONIC) return unless process?(name, payload) payload = { instrumenter_id: id, duration: ((finish_time - payload.delete(:_start_time)) * 1000).round(2) }.merge(format_payload(payload).compact) record(name, payload) end
Source
# File lib/honeybadger/notification_subscriber.rb, line 54 def format_payload(payload) payload end
Source
# File lib/honeybadger/notification_subscriber.rb, line 50 def process?(event, payload) true end
Source
# File lib/honeybadger/notification_subscriber.rb, line 24 def record(name, payload) if Honeybadger.config.load_plugin_insights_events?(:rails) Honeybadger.event(name, payload) end if Honeybadger.config.load_plugin_insights_metrics?(:rails) metric_source 'rails' record_metrics(name, payload) end end
Source
# File lib/honeybadger/notification_subscriber.rb, line 35 def record_metrics(name, payload) case name when 'sql.active_record' gauge('duration.sql.active_record', value: payload[:duration], **payload.slice(:query)) when 'process_action.action_controller' gauge('duration.process_action.action_controller', value: payload[:duration], **payload.slice(:method, :controller, :action, :format, :status)) gauge('db_runtime.process_action.action_controller', value: payload[:db_runtime], **payload.slice(:method, :controller, :action, :format, :status)) gauge('view_runtime.process_action.action_controller', value: payload[:view_runtime], **payload.slice(:method, :controller, :action, :format, :status)) when 'perform.active_job' gauge('duration.perform.active_job', value: payload[:duration], **payload.slice(:job_class, :queue_name)) when /^cache_.*.active_support$/ gauge("duration.#{name}", value: payload[:duration], **payload.slice(:store, :key)) end end
Source
# File lib/honeybadger/notification_subscriber.rb, line 8 def start(name, id, payload) payload[:_start_time] = ::Process.clock_gettime(::Process::CLOCK_MONOTONIC) end