Class: Datadog::Tracing::TraceDigest
- Inherits:
-
Object
- Object
- Datadog::Tracing::TraceDigest
- Defined in:
- lib/datadog/tracing/trace_digest.rb
Overview
Trace digest that represents the important parts of an active trace. Used to propagate context and continue traces across execution boundaries.
Instance Attribute Summary collapse
-
#span_id ⇒ Integer
readonly
Datadog id for the currently active span.
-
#span_name ⇒ String
readonly
The operation name of the currently active span.
-
#span_resource ⇒ String
readonly
The resource name of the currently active span.
-
#span_service ⇒ String
readonly
The service of the currently active span.
-
#span_type ⇒ String
readonly
The type of the currently active span.
-
#trace_distributed_id ⇒ Integer
readonly
The trace id extracted from a distributed context, if different from ‘trace_id`.
-
#trace_distributed_tags ⇒ Hash<String,String>
readonly
Datadog-specific tags that support richer distributed tracing association.
-
#trace_flags ⇒ Integer
readonly
The W3C “trace-flags” extracted from a distributed context.
-
#trace_hostname ⇒ String
readonly
The hostname of the currently active trace.
-
#trace_id ⇒ Integer
readonly
Datadog id for the currently active trace.
-
#trace_name ⇒ Integer
readonly
Operation name for the currently active trace.
-
#trace_origin ⇒ String
readonly
Datadog-specific attribution of this trace’s creation.
-
#trace_process_id ⇒ Integer
readonly
The OS-specific process id.
-
#trace_resource ⇒ String
readonly
The resource name of the currently active trace.
-
#trace_runtime_id ⇒ String
readonly
Unique id to this Ruby process.
-
#trace_sampling_priority ⇒ Integer
readonly
Datadog-specific sampling decision for the currently active trace.
-
#trace_service ⇒ String
readonly
The service of the currently active trace.
-
#trace_state ⇒ String
readonly
The W3C “tracestate” extracted from a distributed context.
-
#trace_state_unknown_fields ⇒ Object
readonly
TODO: The documentation for the last attribute above won’t be rendered.
Instance Method Summary collapse
-
#initialize(span_id: nil, span_name: nil, span_resource: nil, span_service: nil, span_type: nil, trace_distributed_tags: nil, trace_hostname: nil, trace_id: nil, trace_name: nil, trace_origin: nil, trace_process_id: nil, trace_resource: nil, trace_runtime_id: nil, trace_sampling_priority: nil, trace_service: nil, trace_distributed_id: nil, trace_flags: nil, trace_state: nil, trace_state_unknown_fields: nil) ⇒ TraceDigest
constructor
A new instance of TraceDigest.
-
#merge(field_value_pairs) ⇒ TraceDigest
Creates a copy of this object, modifying the provided fields.
Constructor Details
#initialize(span_id: nil, span_name: nil, span_resource: nil, span_service: nil, span_type: nil, trace_distributed_tags: nil, trace_hostname: nil, trace_id: nil, trace_name: nil, trace_origin: nil, trace_process_id: nil, trace_resource: nil, trace_runtime_id: nil, trace_sampling_priority: nil, trace_service: nil, trace_distributed_id: nil, trace_flags: nil, trace_state: nil, trace_state_unknown_fields: nil) ⇒ TraceDigest
Returns a new instance of TraceDigest.
101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 |
# File 'lib/datadog/tracing/trace_digest.rb', line 101 def initialize( span_id: nil, span_name: nil, span_resource: nil, span_service: nil, span_type: nil, trace_distributed_tags: nil, trace_hostname: nil, trace_id: nil, trace_name: nil, trace_origin: nil, trace_process_id: nil, trace_resource: nil, trace_runtime_id: nil, trace_sampling_priority: nil, trace_service: nil, trace_distributed_id: nil, trace_flags: nil, trace_state: nil, trace_state_unknown_fields: nil ) @span_id = span_id @span_name = span_name && span_name.dup.freeze @span_resource = span_resource && span_resource.dup.freeze @span_service = span_service && span_service.dup.freeze @span_type = span_type && span_type.dup.freeze @trace_distributed_tags = && .dup.freeze @trace_hostname = trace_hostname && trace_hostname.dup.freeze @trace_id = trace_id @trace_name = trace_name && trace_name.dup.freeze @trace_origin = trace_origin && trace_origin.dup.freeze @trace_process_id = trace_process_id @trace_resource = trace_resource && trace_resource.dup.freeze @trace_runtime_id = trace_runtime_id && trace_runtime_id.dup.freeze @trace_sampling_priority = trace_sampling_priority @trace_service = trace_service && trace_service.dup.freeze @trace_distributed_id = trace_distributed_id @trace_flags = trace_flags @trace_state = trace_state && trace_state.dup.freeze @trace_state_unknown_fields = trace_state_unknown_fields && trace_state_unknown_fields.dup.freeze freeze end |
Instance Attribute Details
#span_id ⇒ Integer (readonly)
Datadog id for the currently active span.
80 81 82 |
# File 'lib/datadog/tracing/trace_digest.rb', line 80 def span_id @span_id end |
#span_name ⇒ String (readonly)
The operation name of the currently active span.
80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 |
# File 'lib/datadog/tracing/trace_digest.rb', line 80 attr_reader \ :span_id, :span_name, :span_resource, :span_service, :span_type, :trace_distributed_tags, :trace_hostname, :trace_id, :trace_name, :trace_origin, :trace_process_id, :trace_resource, :trace_runtime_id, :trace_sampling_priority, :trace_service, :trace_distributed_id, :trace_flags, :trace_state, :trace_state_unknown_fields |
#span_resource ⇒ String (readonly)
The resource name of the currently active span.
80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 |
# File 'lib/datadog/tracing/trace_digest.rb', line 80 attr_reader \ :span_id, :span_name, :span_resource, :span_service, :span_type, :trace_distributed_tags, :trace_hostname, :trace_id, :trace_name, :trace_origin, :trace_process_id, :trace_resource, :trace_runtime_id, :trace_sampling_priority, :trace_service, :trace_distributed_id, :trace_flags, :trace_state, :trace_state_unknown_fields |
#span_service ⇒ String (readonly)
The service of the currently active span.
80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 |
# File 'lib/datadog/tracing/trace_digest.rb', line 80 attr_reader \ :span_id, :span_name, :span_resource, :span_service, :span_type, :trace_distributed_tags, :trace_hostname, :trace_id, :trace_name, :trace_origin, :trace_process_id, :trace_resource, :trace_runtime_id, :trace_sampling_priority, :trace_service, :trace_distributed_id, :trace_flags, :trace_state, :trace_state_unknown_fields |
#span_type ⇒ String (readonly)
The type of the currently active span.
80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 |
# File 'lib/datadog/tracing/trace_digest.rb', line 80 attr_reader \ :span_id, :span_name, :span_resource, :span_service, :span_type, :trace_distributed_tags, :trace_hostname, :trace_id, :trace_name, :trace_origin, :trace_process_id, :trace_resource, :trace_runtime_id, :trace_sampling_priority, :trace_service, :trace_distributed_id, :trace_flags, :trace_state, :trace_state_unknown_fields |
#trace_distributed_id ⇒ Integer (readonly)
The trace id extracted from a distributed context, if different from ‘trace_id`.
The current use case is when the distributed context has a trace id integer larger than 64-bit: This attribute will preserve the original id, while ‘trace_id` will only contain the lower 64 bits.
80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 |
# File 'lib/datadog/tracing/trace_digest.rb', line 80 attr_reader \ :span_id, :span_name, :span_resource, :span_service, :span_type, :trace_distributed_tags, :trace_hostname, :trace_id, :trace_name, :trace_origin, :trace_process_id, :trace_resource, :trace_runtime_id, :trace_sampling_priority, :trace_service, :trace_distributed_id, :trace_flags, :trace_state, :trace_state_unknown_fields |
#trace_distributed_tags ⇒ Hash<String,String> (readonly)
Datadog-specific tags that support richer distributed tracing association.
80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 |
# File 'lib/datadog/tracing/trace_digest.rb', line 80 attr_reader \ :span_id, :span_name, :span_resource, :span_service, :span_type, :trace_distributed_tags, :trace_hostname, :trace_id, :trace_name, :trace_origin, :trace_process_id, :trace_resource, :trace_runtime_id, :trace_sampling_priority, :trace_service, :trace_distributed_id, :trace_flags, :trace_state, :trace_state_unknown_fields |
#trace_flags ⇒ Integer (readonly)
The W3C “trace-flags” extracted from a distributed context. This field is an 8-bit unsigned integer.
80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 |
# File 'lib/datadog/tracing/trace_digest.rb', line 80 attr_reader \ :span_id, :span_name, :span_resource, :span_service, :span_type, :trace_distributed_tags, :trace_hostname, :trace_id, :trace_name, :trace_origin, :trace_process_id, :trace_resource, :trace_runtime_id, :trace_sampling_priority, :trace_service, :trace_distributed_id, :trace_flags, :trace_state, :trace_state_unknown_fields |
#trace_hostname ⇒ String (readonly)
The hostname of the currently active trace. Use to attribute traces to hosts.
80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 |
# File 'lib/datadog/tracing/trace_digest.rb', line 80 attr_reader \ :span_id, :span_name, :span_resource, :span_service, :span_type, :trace_distributed_tags, :trace_hostname, :trace_id, :trace_name, :trace_origin, :trace_process_id, :trace_resource, :trace_runtime_id, :trace_sampling_priority, :trace_service, :trace_distributed_id, :trace_flags, :trace_state, :trace_state_unknown_fields |
#trace_id ⇒ Integer (readonly)
Datadog id for the currently active trace.
80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 |
# File 'lib/datadog/tracing/trace_digest.rb', line 80 attr_reader \ :span_id, :span_name, :span_resource, :span_service, :span_type, :trace_distributed_tags, :trace_hostname, :trace_id, :trace_name, :trace_origin, :trace_process_id, :trace_resource, :trace_runtime_id, :trace_sampling_priority, :trace_service, :trace_distributed_id, :trace_flags, :trace_state, :trace_state_unknown_fields |
#trace_name ⇒ Integer (readonly)
Operation name for the currently active trace.
80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 |
# File 'lib/datadog/tracing/trace_digest.rb', line 80 attr_reader \ :span_id, :span_name, :span_resource, :span_service, :span_type, :trace_distributed_tags, :trace_hostname, :trace_id, :trace_name, :trace_origin, :trace_process_id, :trace_resource, :trace_runtime_id, :trace_sampling_priority, :trace_service, :trace_distributed_id, :trace_flags, :trace_state, :trace_state_unknown_fields |
#trace_origin ⇒ String (readonly)
Datadog-specific attribution of this trace’s creation.
80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 |
# File 'lib/datadog/tracing/trace_digest.rb', line 80 attr_reader \ :span_id, :span_name, :span_resource, :span_service, :span_type, :trace_distributed_tags, :trace_hostname, :trace_id, :trace_name, :trace_origin, :trace_process_id, :trace_resource, :trace_runtime_id, :trace_sampling_priority, :trace_service, :trace_distributed_id, :trace_flags, :trace_state, :trace_state_unknown_fields |
#trace_process_id ⇒ Integer (readonly)
The OS-specific process id.
80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 |
# File 'lib/datadog/tracing/trace_digest.rb', line 80 attr_reader \ :span_id, :span_name, :span_resource, :span_service, :span_type, :trace_distributed_tags, :trace_hostname, :trace_id, :trace_name, :trace_origin, :trace_process_id, :trace_resource, :trace_runtime_id, :trace_sampling_priority, :trace_service, :trace_distributed_id, :trace_flags, :trace_state, :trace_state_unknown_fields |
#trace_resource ⇒ String (readonly)
The resource name of the currently active trace.
80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 |
# File 'lib/datadog/tracing/trace_digest.rb', line 80 attr_reader \ :span_id, :span_name, :span_resource, :span_service, :span_type, :trace_distributed_tags, :trace_hostname, :trace_id, :trace_name, :trace_origin, :trace_process_id, :trace_resource, :trace_runtime_id, :trace_sampling_priority, :trace_service, :trace_distributed_id, :trace_flags, :trace_state, :trace_state_unknown_fields |
#trace_runtime_id ⇒ String (readonly)
Unique id to this Ruby process. Used to differentiate traces coming from child processes forked from same parent process.
80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 |
# File 'lib/datadog/tracing/trace_digest.rb', line 80 attr_reader \ :span_id, :span_name, :span_resource, :span_service, :span_type, :trace_distributed_tags, :trace_hostname, :trace_id, :trace_name, :trace_origin, :trace_process_id, :trace_resource, :trace_runtime_id, :trace_sampling_priority, :trace_service, :trace_distributed_id, :trace_flags, :trace_state, :trace_state_unknown_fields |
#trace_sampling_priority ⇒ Integer (readonly)
Datadog-specific sampling decision for the currently active trace.
80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 |
# File 'lib/datadog/tracing/trace_digest.rb', line 80 attr_reader \ :span_id, :span_name, :span_resource, :span_service, :span_type, :trace_distributed_tags, :trace_hostname, :trace_id, :trace_name, :trace_origin, :trace_process_id, :trace_resource, :trace_runtime_id, :trace_sampling_priority, :trace_service, :trace_distributed_id, :trace_flags, :trace_state, :trace_state_unknown_fields |
#trace_service ⇒ String (readonly)
The service of the currently active trace.
80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 |
# File 'lib/datadog/tracing/trace_digest.rb', line 80 attr_reader \ :span_id, :span_name, :span_resource, :span_service, :span_type, :trace_distributed_tags, :trace_hostname, :trace_id, :trace_name, :trace_origin, :trace_process_id, :trace_resource, :trace_runtime_id, :trace_sampling_priority, :trace_service, :trace_distributed_id, :trace_flags, :trace_state, :trace_state_unknown_fields |
#trace_state ⇒ String (readonly)
The W3C “tracestate” extracted from a distributed context. This field is a string representing vendor-specific distribution data. The ‘dd=` entry is removed from `trace_state` as its value is dynamically calculated on every propagation injection.
80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 |
# File 'lib/datadog/tracing/trace_digest.rb', line 80 attr_reader \ :span_id, :span_name, :span_resource, :span_service, :span_type, :trace_distributed_tags, :trace_hostname, :trace_id, :trace_name, :trace_origin, :trace_process_id, :trace_resource, :trace_runtime_id, :trace_sampling_priority, :trace_service, :trace_distributed_id, :trace_flags, :trace_state, :trace_state_unknown_fields |
#trace_state_unknown_fields ⇒ Object (readonly)
TODO: The documentation for the last attribute above won’t be rendered. TODO: This might be a YARD bug as adding an attribute, making it now second-last attribute, renders correctly.
80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 |
# File 'lib/datadog/tracing/trace_digest.rb', line 80 attr_reader \ :span_id, :span_name, :span_resource, :span_service, :span_type, :trace_distributed_tags, :trace_hostname, :trace_id, :trace_name, :trace_origin, :trace_process_id, :trace_resource, :trace_runtime_id, :trace_sampling_priority, :trace_service, :trace_distributed_id, :trace_flags, :trace_state, :trace_state_unknown_fields |
Instance Method Details
#merge(field_value_pairs) ⇒ TraceDigest
Creates a copy of this object, modifying the provided fields.
148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 |
# File 'lib/datadog/tracing/trace_digest.rb', line 148 def merge(field_value_pairs) # DEV: Because we want to sometimes freeze the values provided to `TraceDigest`, it's best # DEV: to let `#initialize` decide how to handle each field, instead of duplicating that logic here. TraceDigest.new( **{ span_id: span_id, span_name: span_name, span_resource: span_resource, span_service: span_service, span_type: span_type, trace_distributed_tags: , trace_hostname: trace_hostname, trace_id: trace_id, trace_name: trace_name, trace_origin: trace_origin, trace_process_id: trace_process_id, trace_resource: trace_resource, trace_runtime_id: trace_runtime_id, trace_sampling_priority: trace_sampling_priority, trace_service: trace_service, trace_distributed_id: trace_distributed_id, trace_flags: trace_flags, trace_state: trace_state, trace_state_unknown_fields: trace_state_unknown_fields, }.merge!(field_value_pairs) ) end |