OpenTelemetry OTLP/JSON validator
Paste an ExportTraceServiceRequest payload and get structural validation with per-field findings — entirely in your browser, nothing is uploaded.
OTLP/JSON Trace Validator
Paste an OTLP/JSON ExportTraceServiceRequest payload to validate its structure. Everything runs in your browser — data never leaves this page.
Validation is 100% client-side. Your payload never leaves the browser.
Catch broken OTLP payloads before your backend rejects them
When an OpenTelemetry exporter sends traces and nothing shows up, the failure is usually structural: a traceId that is not 32 hex characters, a spanId that is not 16, timestamps that are not nanoseconds, an invalid span kind, or attributes shaped wrong for the OTLP spec. Most backends silently drop or reject these payloads, leaving you staring at an empty dashboard with no clue why.
This validator parses your OTLP/JSON ExportTraceServiceRequest and walks every resource span, scope, and span, reporting per-field findings: hex lengths for traceId and spanId, timestamp sanity, span kind values, attribute key/value shapes, and a warning when service.name is missing — the single most common reason traces land in an "unknown service" bucket. Everything runs locally in your browser; your telemetry never leaves your machine.
How to validate an OTLP payload
- 1
Capture the JSON payload
Grab the OTLP/JSON body your SDK or collector sends — for example by pointing the exporter at a local endpoint, enabling debug logging, or using the console exporter.
- 2
Paste it into the validator
Paste the ExportTraceServiceRequest JSON into the input. The tool parses it instantly in your browser — nothing is sent to any server.
- 3
Review per-field findings
Errors and warnings are listed per field: invalid traceId or spanId lengths, suspect timestamps, bad span kinds, malformed attributes, and a missing service.name warning.
- 4
Fix and re-validate
Adjust your instrumentation or collector pipeline, paste the new payload, and confirm it passes before pointing the exporter back at your backend.
OpenTelemetry validator FAQ
Is this OTLP validator free?
Yes. It is completely free with no signup, no account, and no usage limits.
Is my trace data uploaded anywhere?
No. Validation runs entirely in your browser with JavaScript. Your OTLP payload never leaves your machine, which matters when traces contain internal hostnames or request data.
What format does the validator expect?
OTLP/JSON — the JSON encoding of ExportTraceServiceRequest, the same body sent to /v1/traces over HTTP. Protobuf binary payloads need to be converted to JSON first.
Why does it warn about a missing service.name?
service.name is the resource attribute backends use to group spans by service. Without it, most backends file your traces under an unknown-service bucket, making them nearly impossible to find.
What are valid traceId and spanId values?
In OTLP/JSON, traceId must be 32 lowercase hex characters (16 bytes) and spanId must be 16 hex characters (8 bytes), and neither may be all zeros. The validator checks both on every span.
Explore more
By framework
Compare
Need a backend for those traces?
AllStak is an OpenTelemetry-native backend: point your OTLP trace exporter at AllStak and get distributed tracing alongside errors, logs, and uptime in one platform. See the OpenTelemetry integration to get started.