Class: OneApm::Agent::Instrumentation::ActionViewSubscriber
- Inherits:
-
EventedSubscriber
- Object
- EventedSubscriber
- OneApm::Agent::Instrumentation::ActionViewSubscriber
- Defined in:
- lib/one_apm/inst/rails4/action_view_subscriber.rb
Defined Under Namespace
Classes: RenderEvent
Instance Method Summary collapse
- #finish(name, id, payload) ⇒ Object
- #record_metrics(event, frame) ⇒ Object
- #start(name, id, payload) ⇒ Object
Methods inherited from EventedSubscriber
#event_stack, #initialize, #log_notification_error, #pop_event, #push_event, subscribe, subscribed?
Constructor Details
This class inherits a constructor from OneApm::Agent::Instrumentation::EventedSubscriber
Instance Method Details
#finish(name, id, payload) ⇒ Object
24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/one_apm/inst/rails4/action_view_subscriber.rb', line 24 def finish(name, id, payload) event = pop_event(id) state = OneApm::TransactionState.tl_get if state.is_execution_traced? && event.recordable? stack = state.traced_method_stack frame = stack.pop_frame(state, event.frame, event.metric_name, event.end) record_metrics(event, frame) end rescue => e log_notification_error(e, name, 'finish') end |
#record_metrics(event, frame) ⇒ Object
38 39 40 41 42 |
# File 'lib/one_apm/inst/rails4/action_view_subscriber.rb', line 38 def record_metrics(event, frame) exclusive = event.duration - frame.children_time OneApm::Manager.agent.stats_engine.tl_record_scoped_and_unscoped_metrics( event.metric_name, nil, event.duration, exclusive) end |
#start(name, id, payload) ⇒ Object
10 11 12 13 14 15 16 17 18 19 20 21 22 |
# File 'lib/one_apm/inst/rails4/action_view_subscriber.rb', line 10 def start(name, id, payload) event = RenderEvent.new(name, Time.now, nil, id, payload) push_event(event) state = OneApm::TransactionState.tl_get if state.is_execution_traced? && event.recordable? stack = state.traced_method_stack event.frame = stack.push_frame(state, :action_view, event.time) end rescue => e log_notification_error(e, name, 'start') end |