Skip to content

Files

This branch is 90 commits behind open-telemetry/opentelemetry-js-contrib:main.

opentelemetry-propagator-ot-trace

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
Nov 27, 2024
Aug 9, 2022
Feb 1, 2021
Feb 1, 2021
Apr 25, 2024
Apr 16, 2024
Mar 12, 2024
Sep 10, 2022
Nov 5, 2024
Apr 30, 2021
Feb 1, 2021

OpenTelemetry OTTracePropagator

NPM Published Version Apache License

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.