Paste a traceparent value or a header block to inspect trace IDs, sampling and propagation fields, then generate a root or child context for debugging.
Runs locally in your browserTrace and baggage headers can expose service or customer context. Review values before copying them into tickets.
Paste a traceparent value or a header block and the page reads the W3C trace context it carries: the trace ID, the parent span ID, the sampling flag, every tracestate member and every baggage entry. The values are checked against the format rules of the W3C Trace Context and Baggage specifications rather than against a running service.
The same panel writes propagation headers back out. Generate child keeps the trace ID and issues a new parent span ID, while Generate root starts a fresh trace; both keep the original tracestate and baggage lines. Everything runs in the browser — the pasted headers are not uploaded — and the generated block is ready for curl, a log entry or a bug report.
A traceparent is four dash-separated fields: a two-digit lowercase hex version, a 32-hex trace ID, a 16-hex parent span ID and a two-hex flags field. Version ff is reserved and rejected; version 00 must have exactly four fields, while higher versions may append extra fields and are accepted for forward compatibility. Both IDs must be lowercase hex and must not be all zeros; the sampled state is read from the first bit of the flags field, so 01 means sampled and 00 means not sampled.
A header block with two traceparent lines is rejected: the specification requires exactly one. Header names are matched case-insensitively, so Traceparent: works the same as traceparent:, and values are matched exactly — an uppercase ID, a 31-character trace ID, a missing field or a trailing suffix each fail with the reason that names the broken field.
tracestate is a comma-separated list of key=value pairs. Each key must follow the W3C key grammar — a lowercase simple key such as acme, or a tenant@system key — and the list may carry at most 32 members. The table lists each entry, marks malformed pairs, flags a key that repeats, and warns when the list exceeds the limit. The values themselves are vendor data and are shown as they arrived, without interpretation.
baggage entries use HTTP token keys and may append semicolon metadata after the value. Keys that are not valid tokens are flagged, and a keyword check highlights entries whose key or value mentions secret, token, password, e-mail, authorization, cookie, session or user. That check is a reminder to review before sharing a block — it is not a security scan, it cannot tell whether a value is truly sensitive, and baggage values are printed as they appear, without percent-decoding.
Generate child re-reads the input first, then keeps the trace ID, creates a new random parent span ID and preserves the original flags, tracestate and baggage, which is the header set a downstream service would receive. Generate root creates a new random trace ID and parent span ID with the sampled flag set, which is the header set a new trace starts with.
This is an inspector for the W3C headers, not a tracing backend: it cannot tell whether a trace ID exists in your collector, and it does not parse B3, Zipkin, Jaeger or vendor-specific propagation formats. The input never leaves the browser, the page keeps working offline once loaded, and the tool never echoes the headers to a server.