class NewRelic::Agent::Instrumentation::ActionCableSubscriber
Constants
- DOT_ACTION_CABLE
- PERFORM_ACTION
Public Instance Methods
Source
# File lib/new_relic/agent/instrumentation/action_cable_subscriber.rb, line 13 def start_segment(name, id, payload) # THREAD_LOCAL_ACCESS finishable = if name == PERFORM_ACTION Tracer.start_transaction_or_segment( name: transaction_name_from_payload(payload), category: :action_cable ) else Tracer.start_segment(name: metric_name_from_payload(name, payload)) end push_segment(id, finishable) end
Private Instance Methods
Source
# File lib/new_relic/agent/instrumentation/action_cable_subscriber.rb, line 41 def action_name(name) name.gsub(DOT_ACTION_CABLE, NewRelic::EMPTY_STR) end
Source
# File lib/new_relic/agent/instrumentation/action_cable_subscriber.rb, line 35 def metric_name(payload) payload[:broadcasting] || payload[:channel_class] end
Source
# File lib/new_relic/agent/instrumentation/action_cable_subscriber.rb, line 31 def metric_name_from_payload(name, payload) "Ruby/ActionCable/#{metric_name(payload)}/#{action_name(name)}" end
Source
# File lib/new_relic/agent/instrumentation/action_cable_subscriber.rb, line 27 def transaction_name_from_payload(payload) "Controller/ActionCable/#{payload[:channel_class]}/#{payload[:action]}" end