Module: NewRelic::Agent::SpanEventPrimitive
- Extended by:
- SpanEventPrimitive
- Includes:
- Coerce
- Included in:
- SpanEventPrimitive
- Defined in:
- lib/new_relic/agent/span_event_primitive.rb
Constant Summary collapse
- ELLIPSIS =
Strings for static keys of the event structure
'...'
- TYPE_KEY =
'type'
- TRACE_ID_KEY =
'traceId'
- GUID_KEY =
'guid'
- PARENT_ID_KEY =
'parentId'
- TRANSACTION_ID_KEY =
'transactionId'
- SAMPLED_KEY =
'sampled'
- PRIORITY_KEY =
'priority'
- TIMESTAMP_KEY =
'timestamp'
- DURATION_KEY =
'duration'
- NAME_KEY =
'name'
- CATEGORY_KEY =
'category'
- HTTP_URL_KEY =
'http.url'
- HTTP_METHOD_KEY =
'http.method'
- HTTP_STATUS_CODE_KEY =
'http.statusCode'
- COMPONENT_KEY =
'component'
- DB_INSTANCE_KEY =
'db.instance'
- DB_STATEMENT_KEY =
'db.statement'
- PEER_ADDRESS_KEY =
'peer.address'
- PEER_HOSTNAME_KEY =
'peer.hostname'
- SPAN_KIND_KEY =
'span.kind'
- ENTRY_POINT_KEY =
'nr.entryPoint'
- TRUSTED_PARENT_KEY =
'trustedParentId'
- TRACING_VENDORS_KEY =
'tracingVendors'
- TRANSACTION_NAME_KEY =
'transaction.name'
- EVENT_TYPE =
Strings for static values of the event structure
'Span'
- GENERIC_CATEGORY =
'generic'
- HTTP_CATEGORY =
'http'
- DATASTORE_CATEGORY =
'datastore'
- CLIENT =
'client'
Instance Method Summary collapse
-
#error_attributes(segment) ⇒ Object
Builds a Hash of error attributes as well as the Span ID when an error is present.
- #for_datastore_segment(segment) ⇒ Object
- #for_external_request_segment(segment) ⇒ Object
- #for_segment(segment) ⇒ Object
Methods included from Coerce
boolean_int!, float, float!, int, int!, int_or_nil, log_failure, scalar, string, value_or_nil
Instance Method Details
#error_attributes(segment) ⇒ Object
Builds a Hash of error attributes as well as the Span ID when an error is present. Otherwise, returns nil when no error present.
53 54 55 56 57 58 |
# File 'lib/new_relic/agent/span_event_primitive.rb', line 53 def error_attributes(segment) return if Agent.config[:high_security] || !segment.noticed_error segment.noticed_error.build_error_attributes segment.noticed_error_attributes end |
#for_datastore_segment(segment) ⇒ Object
89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 |
# File 'lib/new_relic/agent/span_event_primitive.rb', line 89 def for_datastore_segment(segment) intrinsics = intrinsics_for(segment) intrinsics[COMPONENT_KEY] = segment.product intrinsics[SPAN_KIND_KEY] = CLIENT intrinsics[CATEGORY_KEY] = DATASTORE_CATEGORY agent_attributes = error_attributes(segment) || {} if segment.database_name && allowed?(DB_INSTANCE_KEY) agent_attributes[DB_INSTANCE_KEY] = truncate(segment.database_name) end if segment.host && segment.port_path_or_id && allowed?(PEER_ADDRESS_KEY) agent_attributes[PEER_ADDRESS_KEY] = truncate("#{segment.host}:#{segment.port_path_or_id}") end if segment.host && allowed?(PEER_HOSTNAME_KEY) agent_attributes[PEER_HOSTNAME_KEY] = truncate(segment.host) end if segment.sql_statement && allowed?(DB_STATEMENT_KEY) agent_attributes[DB_STATEMENT_KEY] = truncate(segment.sql_statement.safe_sql, 2000) elsif segment.nosql_statement && allowed?(DB_STATEMENT_KEY) agent_attributes[DB_STATEMENT_KEY] = truncate(segment.nosql_statement, 2000) end [intrinsics, custom_attributes(segment), agent_attributes] end |
#for_external_request_segment(segment) ⇒ Object
67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 |
# File 'lib/new_relic/agent/span_event_primitive.rb', line 67 def for_external_request_segment(segment) intrinsics = intrinsics_for(segment) intrinsics[COMPONENT_KEY] = segment.library intrinsics[HTTP_METHOD_KEY] = segment.procedure intrinsics[HTTP_STATUS_CODE_KEY] = segment.http_status_code if segment.http_status_code intrinsics[CATEGORY_KEY] = HTTP_CATEGORY intrinsics[SPAN_KIND_KEY] = CLIENT agent_attributes = error_attributes(segment) || {} if allowed?(HTTP_URL_KEY) agent_attributes[HTTP_URL_KEY] = truncate(segment.uri) end if segment.respond_to?(:record_agent_attributes?) && segment.record_agent_attributes? agent_attributes.merge!(agent_attributes(segment)) end [intrinsics, custom_attributes(segment), agent_attributes] end |
#for_segment(segment) ⇒ Object
60 61 62 63 64 65 |
# File 'lib/new_relic/agent/span_event_primitive.rb', line 60 def for_segment(segment) intrinsics = intrinsics_for(segment) intrinsics[CATEGORY_KEY] = GENERIC_CATEGORY [intrinsics, custom_attributes(segment), agent_attributes(segment)] end |