Class: Honeybadger::RailsSubscriber
- Inherits:
-
NotificationSubscriber
- Object
- NotificationSubscriber
- Honeybadger::RailsSubscriber
- Defined in:
- lib/honeybadger/notification_subscriber.rb
Direct Known Subclasses
ActionControllerCacheSubscriber, ActionControllerSubscriber, ActionMailerSubscriber, ActionViewSubscriber, ActiveJobSubscriber, ActiveRecordSubscriber, ActiveStorageSubscriber, ActiveSupportCacheMultiSubscriber, ActiveSupportCacheSubscriber
Instance Method Summary collapse
Methods inherited from NotificationSubscriber
#finish, #format_payload, #process?, #start
Methods included from InstrumentationHelper
#decrement_counter, #extract_attributes, #extract_callable, #gauge, #histogram, #increment_counter, #metric_agent, #metric_attributes, #metric_instrumentation, #metric_source, #monotonic_timer, #time
Instance Method Details
#record(name, payload) ⇒ Object
43 44 45 46 |
# File 'lib/honeybadger/notification_subscriber.rb', line 43 def record(name, payload) return unless Honeybadger.config.load_plugin_insights?(:rails, feature: :events) Honeybadger.event(name, payload) end |
#record_metrics(name, payload) ⇒ Object
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
# File 'lib/honeybadger/notification_subscriber.rb', line 48 def record_metrics(name, payload) return unless Honeybadger.config.load_plugin_insights?(:rails, feature: :metrics) metric_source "rails" case name when "sql.active_record" return if payload[:query]&.match?(/^(begin|commit)( immediate)?( transaction)?$/i) gauge("duration.sql.active_record", value: payload[:duration]) 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 /^cache_.*.active_support$/ gauge("duration.#{name}", value: payload[:duration], **payload.slice(:store)) end end |