Module: NewRelic::Agent::Transaction::DistributedTracing
- Defined in:
- lib/new_relic/agent/transaction/distributed_tracing.rb
Constant Summary collapse
- SUPPORTABILITY_DISTRIBUTED_TRACE =
'Supportability/DistributedTrace'- CREATE_PREFIX =
"#{SUPPORTABILITY_DISTRIBUTED_TRACE}/CreatePayload"- ACCEPT_PREFIX =
"#{SUPPORTABILITY_DISTRIBUTED_TRACE}/AcceptPayload"- IGNORE_PREFIX =
"#{ACCEPT_PREFIX}/Ignored"- CREATE_SUCCESS_METRIC =
"#{CREATE_PREFIX}/Success"- CREATE_EXCEPTION_METRIC =
"#{CREATE_PREFIX}/Exception"- ACCEPT_SUCCESS_METRIC =
"#{ACCEPT_PREFIX}/Success"- ACCEPT_EXCEPTION_METRIC =
"#{ACCEPT_PREFIX}/Exception"- ACCEPT_PARSE_EXCEPTION_METRIC =
"#{ACCEPT_PREFIX}/ParseException"- IGNORE_ACCEPT_AFTER_CREATE_METRIC =
"#{IGNORE_PREFIX}/CreateBeforeAccept"- IGNORE_MULTIPLE_ACCEPT_METRIC =
"#{IGNORE_PREFIX}/Multiple"- IGNORE_ACCEPT_NULL_METRIC =
"#{IGNORE_PREFIX}/Null"- IGNORE_ACCEPT_MAJOR_VERSION_METRIC =
"#{IGNORE_PREFIX}/MajorVersion"- IGNORE_ACCEPT_UNTRUSTED_ACCOUNT_METRIC =
"#{IGNORE_PREFIX}/UntrustedAccount"- LBRACE =
'{'- NULL_PAYLOAD =
'null'- NEWRELIC_TRACE_KEY =
'HTTP_NEWRELIC'
Instance Attribute Summary collapse
Instance Method Summary collapse
- #accept_distributed_trace_payload(payload) ⇒ Object
- #accept_distributed_tracing_incoming_request(request) ⇒ Object
- #create_distributed_trace_payload ⇒ Object
- #distributed_trace_payload_created? ⇒ Boolean
Instance Attribute Details
#distributed_trace_payload ⇒ Object
13 14 15 |
# File 'lib/new_relic/agent/transaction/distributed_tracing.rb', line 13 def distributed_trace_payload @distributed_trace_payload end |
#distributed_trace_payload_created=(value) ⇒ Object (writeonly)
14 15 16 |
# File 'lib/new_relic/agent/transaction/distributed_tracing.rb', line 14 def distributed_trace_payload_created=(value) @distributed_trace_payload_created = value end |
Instance Method Details
#accept_distributed_trace_payload(payload) ⇒ Object
62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 |
# File 'lib/new_relic/agent/transaction/distributed_tracing.rb', line 62 def accept_distributed_trace_payload(payload) return unless Agent.config[:'distributed_tracing.enabled'] return false if check_payload_ignored(payload) return false unless check_payload_present(payload) return false unless payload = decode_payload(payload) return false unless check_required_fields_present(payload) return false unless check_valid_version(payload) return false unless check_trusted_account(payload) assign_payload_and_sampling_params(payload) NewRelic::Agent.increment_metric(ACCEPT_SUCCESS_METRIC) true rescue => e NewRelic::Agent.increment_metric(ACCEPT_EXCEPTION_METRIC) NewRelic::Agent.logger.warn('Failed to accept distributed trace payload', e) false end |
#accept_distributed_tracing_incoming_request(request) ⇒ Object
38 39 40 41 42 43 |
# File 'lib/new_relic/agent/transaction/distributed_tracing.rb', line 38 def accept_distributed_tracing_incoming_request(request) return unless Agent.config[:'distributed_tracing.enabled'] return unless payload = request[NEWRELIC_TRACE_KEY] accept_distributed_trace_payload(payload) end |
#create_distributed_trace_payload ⇒ Object
49 50 51 52 53 54 55 56 57 58 59 60 |
# File 'lib/new_relic/agent/transaction/distributed_tracing.rb', line 49 def create_distributed_trace_payload return unless Agent.config[:'distributed_tracing.enabled'] @distributed_trace_payload_created = true payload = DistributedTracePayload.for_transaction(transaction) NewRelic::Agent.increment_metric(CREATE_SUCCESS_METRIC) payload rescue => e NewRelic::Agent.increment_metric(CREATE_EXCEPTION_METRIC) NewRelic::Agent.logger.warn('Failed to create distributed trace payload', e) nil end |
#distributed_trace_payload_created? ⇒ Boolean
45 46 47 |
# File 'lib/new_relic/agent/transaction/distributed_tracing.rb', line 45 def distributed_trace_payload_created? @distributed_trace_payload_created ||= false end |