On this page
class ActiveSupport::Notifications::Instrumenter
Instrumenters are stored in a thread local.
Attributes
id[R]
Public Class Methods
# File activesupport/lib/active_support/notifications/instrumenter.rb, line 9
def initialize(notifier)
@id = unique_id
@notifier = notifier
end
Public Instance Methods
# File activesupport/lib/active_support/notifications/instrumenter.rb, line 35
def finish(name, payload)
@notifier.finish name, @id, payload
end
Send a finish notification with name
and payload
.
# File activesupport/lib/active_support/notifications/instrumenter.rb, line 17
def instrument(name, payload={})
start name, payload
begin
yield payload
rescue Exception => e
payload[:exception] = [e.class.name, e.message]
raise e
ensure
finish name, payload
end
end
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 activesupport/lib/active_support/notifications/instrumenter.rb, line 30
def start(name, payload)
@notifier.start name, @id, payload
end
Send a start notification with name
and payload
.
© 2004–2018 David Heinemeier Hansson
Licensed under the MIT License.