Class: Datadog::OpenTelemetry::SDK::IdGenerator

Inherits:
Object
  • Object
show all
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

Class Method Details

.generate_trace_id ⇒ String

Returns a valid 16-byte trace ID.

Returns:

  • (String) —

    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