Buffers instrumentation events during background execution for later publishing
Namespace
Methods
- A
-
- B
-
- F
-
- I
-
- N
-
Class Public methods
new(intent, instrumenter)
Link
Source:
show
|
on GitHub
def initialize(intent, instrumenter)
@intent = intent
@instrumenter = instrumenter
@events = []
end
Instance Public methods
add_event(event)
Link
Source:
show
|
on GitHub
def add_event(event)
@events << event
end
build_handle(name, payload)
Link
Source:
show
|
on GitHub
def build_handle(name, payload)
DeferredHandle.new(self, @instrumenter, name, payload)
end
Source:
show
|
on GitHub
def flush
events, @events = @events, []
events.each do |event|
event.payload[:lock_wait] = @intent.lock_wait
ActiveSupport::Notifications.publish_event(event)
end
end
instrument(name, payload = {}, &block)
Link
Source:
show
|
on GitHub
def instrument(name, payload = {}, &block)
event = @instrumenter.new_event(name, payload)
begin
event.record(&block)
ensure
@events << event
end
end