Trace and Span ID Formats

This page details Datadog tracing library support for trace and span IDs.

  • Generated IDs: By default, all tracing libraries generate 128-bit trace IDs and 64-bit span IDs.
  • Accepted IDs: Datadog accepts 128-bit or 64-bit trace IDs, and 64-bit span IDs.

128-bit trace IDs

128-bit trace IDs are generated and accepted by default in the latest versions of Datadog tracing libraries:

64-bit trace and span IDs

Trace IDs

Trace IDs are generated as 128-bit by default, and they are accepted as either 128-bit or 64-bit integers. To generate 64-bit trace IDs, set the environment variable DD_TRACE_128_BIT_TRACEID_GENERATION_ENABLED to false.

Span IDs

Span IDs are limited to 64-bits in Datadog.

LanguageGenerated IDsValid, Accepted 64-bit int IDs
Node.jsUnsigned [0, $2^63$]Signed or unsigned
JavaUnsigned [1, $2^63-1$]Unsigned
GoUnsigned [0, $2^63-1$]Signed or unsigned
PythonUnsigned [0, $2^64-1$]Unsigned
RubyUnsigned [1, $2^62-1$]Unsigned
.NETUnsigned [0, $2^63-1$]Unsigned
PHPUnsigned [1, $2^64-1$]Unsigned
C++Unsigned [0, $2^63-1$]Unsigned

Further reading

Additional helpful documentation, links, and articles:

PREVIEWING: may/unit-testing