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 11 def initialize(notifier) @id = unique_id @notifier = notifier end
Public Instance Methods
# File activesupport/lib/active_support/notifications/instrumenter.rb, line 39 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 43 def finish_with_state(listeners_state, name, payload) @notifier.finish name, @id, payload, listeners_state end
# File activesupport/lib/active_support/notifications/instrumenter.rb, line 19 def instrument(name, payload = {}) # some of the listeners might have state listeners_state = start name, payload begin yield payload rescue Exception => e payload[:exception] = [e.class.name, e.message] payload[:exception_object] = e raise e ensure finish_with_state listeners_state, 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 34 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.