OpenTelemetry OTTracePropagator
OT Trace Format
Header Name | Description | Required |
---|
ot-tracer-traceid | uint64 encoded as a string of 16 hex characters | yes |
ot-tracer-spanid | uint64 encoded as a string of 16 hex characters | yes |
ot-tracer-sampled | boolean encoded as a string with the values 'true' or 'false' | no |
ot-baggage-* | repeated string to string key-value baggage items; keys are prefixed with ot-baggage- and the corresponding value is the raw string. | if baggage is present |
Interop and trace ids
The OT trace propagation format expects trace ids to be 64 bits. In order to
interop with OpenTelemetry, trace ids need to be truncated to 64 bits before
sending them on the wire. When truncating, the least significant (right-most)
bits MUST be retained. For example, a trace id of
3c3039f4d78d5c02ee8e3e41b17ce105
would be truncated to ee8e3e41b17ce105
.
Baggage Notes
Baggage keys and values are validated according to rfc7230. Any
keys or values that would result in invalid HTTP headers will be silently
dropped during inject.
OT Baggage is represented as multiple headers where the
names are carrier dependent. For this reason, they are omitted from the fields
method. This behavior should be taken into account if your application relies
on the fields
functionality. See the specification for
more details.
Example Usage
const api = require('@opentelemetry/api');
const { OTTracePropagator } = require('@opentelemetry/propagator-ot-trace');
api.propagation.setGlobalPropagator(new OTTracePropagator());
Useful links
License
Apache 2.0 - See LICENSE for more information.