Module: Noiseless::Instrumentation

Included in:
Adapter
Defined in:
lib/noiseless/instrumentation.rb

Overview

Instrumentation via ActiveSupport

Instance Method Summary collapse

Instance Method Details

#instrument(event, payload = {}) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/noiseless/instrumentation.rb', line 6

def instrument(event, payload = {})
  start_time = Time.current
  payload = payload.merge(
    adapter: self.class.name,
    connection: connection_info,
    start_time: start_time
  )

  result = ActiveSupport::Notifications.instrument("noiseless.#{event}", payload) do
    yield if block_given?
  end

  # Update runtime tracking for Rails
  add_to_runtime(Time.current - start_time) if defined?(Rails) && Rails.respond_to?(:application) && Rails.application

  result
end