Trace Context Inspector

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 browser
This tool processes all data locally in your browser.
Trace headersPaste a header block or a traceparent value.

Trace and baggage headers can expose service or customer context. Review values before copying them into tickets.

tracestate entries
No tracestate entries yet.
baggage entries
No baggage entries yet.

How to inspect a trace context

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.

  1. Paste a header block (traceparent, tracestate, baggage) or a bare traceparent value, then press Inspect context; Load example fills a sample if you want to see the output shape first.
  2. Read the overview: version, trace ID, parent span ID, sampling state and the number of tracestate and baggage entries, followed by the findings list.
  3. Press Generate child to keep the trace ID with a new parent span ID, or Generate root to start a new trace; the outbound header block appears below.
  4. Use Copy for the generated block, then Clear to reset the input, the overview and both tables.

What the inspector checks, field by field

The traceparent check, rule by rule

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 and baggage, entry by entry

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.

Generating context — and what the tool does not do

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.

Recent tools: