Class: Honeybadger::NotificationSubscriber
- Inherits:
-
Object
- Object
- Honeybadger::NotificationSubscriber
show all
- Includes:
- InstrumentationHelper
- Defined in:
- lib/honeybadger/notification_subscriber.rb
Instance Method Summary
collapse
#decrement_counter, #extract_attributes, #extract_callable, #gauge, #histogram, #increment_counter, #metric_agent, #metric_attributes, #metric_instrumentation, #metric_source, #monotonic_timer, #time
Instance Method Details
#finish(name, id, payload) ⇒ Object
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
# 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(name, payload).compact)
record(name, payload)
record_metrics(name, payload)
rescue => e
Honeybadger.config.logger.error("Error in Honeybadger instrumentation for #{name}: #{e.class}: #{e.message}")
end
|
40
41
42
|
# File 'lib/honeybadger/notification_subscriber.rb', line 40
def format_payload(name, payload)
payload
end
|
#process?(name, payload) ⇒ Boolean
36
37
38
|
# File 'lib/honeybadger/notification_subscriber.rb', line 36
def process?(name, payload)
true
end
|
#record(name, payload) ⇒ Object
28
29
30
|
# File 'lib/honeybadger/notification_subscriber.rb', line 28
def record(name, payload)
Honeybadger.event(name, payload)
end
|
#record_metrics(name, payload) ⇒ Object
32
33
34
|
# File 'lib/honeybadger/notification_subscriber.rb', line 32
def record_metrics(name, payload)
end
|
#start(name, id, payload) ⇒ Object
8
9
10
|
# File 'lib/honeybadger/notification_subscriber.rb', line 8
def start(name, id, payload)
payload[:_start_time] = ::Process.clock_gettime(::Process::CLOCK_MONOTONIC)
end
|