Class: Datadog::OpenTelemetry::SDK::IdGenerator
- Inherits:
-
Object
- Object
- Datadog::OpenTelemetry::SDK::IdGenerator
- Extended by:
- OpenTelemetry::Trace
- Defined in:
- lib/datadog/opentelemetry/sdk/id_generator.rb
Overview
Generates Datadog-compatible trace IDs for OpenTelemetry spans.
Reuses the same 128-bit ID format as non-OTel Datadog tracing:
[32-bit seconds since Epoch | 32 zero bits | 64 random bits]
When DD_TRACE_128_BIT_TRACEID_GENERATION_ENABLED is false the high 64 bits are zero, preserving the OTel 16-byte wire format while keeping backward compatibility with 64-bit Datadog trace IDs.
Class Method Summary collapse
-
.generate_trace_id ⇒ String
A valid 16-byte trace ID.
Class Method Details
.generate_trace_id ⇒ String
Returns a valid 16-byte trace ID.
21 22 23 24 25 26 27 |
# File 'lib/datadog/opentelemetry/sdk/id_generator.rb', line 21 def generate_trace_id trace_id = Tracing::Utils::TraceId.next_id [ Tracing::Utils::TraceId.to_high_order(trace_id), Tracing::Utils::TraceId.to_low_order(trace_id), ].pack("Q>Q>") end |