class NewRelic::Agent::Instrumentation::CustomEventsSubscriber

Public Instance Methods

finish(name, id, payload) click to toggle source
# File lib/new_relic/agent/instrumentation/custom_events_subscriber.rb, line 20
def finish(name, id, payload) # THREAD_LOCAL_ACCESS
  return unless state.is_execution_traced?

  NewRelic::Agent.notice_error(payload[:exception_object]) if payload.key?(:exception_object)

  finishable = pop_segment(id)
  # the following line needs else branch coverage
  finishable.finish if finishable # rubocop:disable Style/SafeNavigation
rescue => e
  log_notification_error(e, name, 'finish')
end
start(name, id, _payload) click to toggle source
# File lib/new_relic/agent/instrumentation/custom_events_subscriber.rb, line 10
def start(name, id, _payload) # THREAD_LOCAL_ACCESS
  return unless state.is_execution_traced?

  finishable = NewRelic::Agent::Tracer.start_transaction_or_segment(name: transaction_name(name),
    category: :custom_events)
  push_segment(id, finishable)
rescue => e
  log_notification_error(e, name, 'start')
end

Private Instance Methods

transaction_name(name) click to toggle source
# File lib/new_relic/agent/instrumentation/custom_events_subscriber.rb, line 34
def transaction_name(name)
  "ActiveSupport/CustomEvents/#{name}"
end