class Hoss::Instrumenter
@api private
Constants
- EVENT_KEY
Attributes
enqueue[R]
stacktrace_builder[R]
Public Class Methods
new(config, metrics:, stacktrace_builder:, &enqueue)
click to toggle source
# File lib/hoss/instrumenter.rb, line 46 def initialize(config, metrics:, stacktrace_builder:, &enqueue) @config = config @stacktrace_builder = stacktrace_builder @enqueue = enqueue @metrics = metrics @current = Current.new end
Public Instance Methods
current_event()
click to toggle source
# File lib/hoss/instrumenter.rb, line 90 def current_event current_events.last end
current_events()
click to toggle source
events
# File lib/hoss/instrumenter.rb, line 86 def current_events @current.events end
end_event()
click to toggle source
# File lib/hoss/instrumenter.rb, line 100 def end_event return unless (event = current_events.pop) event.done enqueue.call event event end
handle_forking!()
click to toggle source
# File lib/hoss/instrumenter.rb, line 72 def handle_forking! stop start end
start()
click to toggle source
# File lib/hoss/instrumenter.rb, line 57 def start debug 'Starting instrumenter' # We call register! on @subscriber in case the # instrumenter was stopped and started again @subscriber&.register! end
start_event()
click to toggle source
# File lib/hoss/instrumenter.rb, line 94 def start_event event = Event.new current_events.push event event.start end
stop()
click to toggle source
# File lib/hoss/instrumenter.rb, line 64 def stop debug 'Stopping instrumenter' current_events.pop until current_events.empty? @subscriber&.unregister! end
subscriber=(subscriber)
click to toggle source
# File lib/hoss/instrumenter.rb, line 77 def subscriber=(subscriber) debug 'Registering subscriber' @subscriber = subscriber @subscriber.register! end