class ActiveSupport::Notifications::Instrumenter

Attributes

id[R]

Public Instance Methods

instrument(name, payload={}) { || ... } click to toggle source

Instrument the given block by measuring the time taken to execute it and publish it. Notice that events get sent even if an error occurs in the passed-in block

# File lib/active_support/notifications/instrumenter.rb, line 17
def instrument(name, payload={})
  started = Time.now

  begin
    yield
  rescue Exception => e
    payload[:exception] = [e.class.name, e.message]
    raise e
  ensure
    @notifier.publish(name, started, Time.now, @id, payload)
  end
end

Public Class Methods

new(notifier) click to toggle source
# File lib/active_support/notifications/instrumenter.rb, line 9
def initialize(notifier)
  @id = unique_id
  @notifier = notifier
end