Developer & cloud explorers

Distributed Trace Explorer

Paste an OTLP, Jaeger or Zipkin trace: span tree, critical path, self-time, N+1 calls and errors.

OTLP/JSON export (e.g. from the OpenTelemetry Collector file exporter), Jaeger UI "Download JSON" / API /api/traces/{id}, or a Zipkin v2 span array.

Read in memory as UTF-8 text and not stored. Max 5 MiB.

If the payload contains several traces; default is the trace with the most spans.

Minimum number of same-named sibling spans to report as N+1 / fan-out.

Try an example: OTLP: order page with N+1 queries and a timing-out dependency · Zipkin v2: gateway with shared client/server spans and a 503

How it works

Paste a trace exported as OTLP JSON (resourceSpans), Jaeger JSON (data[].spans) or Zipkin v2 JSON. The explorer rebuilds the span tree, computes self-time (excluding overlapping child spans), the critical path that determines end-to-end latency, the slowest services, error spans, and detects N+1 queries and fan-out (many sibling spans with the same name), with a service call graph and a waterfall.

  • Formats: OTLP/JSON (resource service.name, startTimeUnixNano/endTimeUnixNano, status.code 2 = ERROR), Jaeger JSON (µs startTime/duration, CHILD_OF references, error=true tag) and Zipkin v2 (µs timestamp/duration, "error" tag; shared client/server spans are split so the server span becomes the client span's child).
  • Self-time = span duration minus the union of its children's intervals (clipped to the span), so concurrent children are not double-counted.
  • Critical path: from the longest root span, repeatedly take the child that finishes last before the current cursor, recurse into it, and move the cursor to its start; time not covered by a critical child is the span's own critical time.
  • Repeated siblings: children of one parent with the same service + normalised name/statement (ids and literals masked) at or above the threshold. If their summed duration ≈ wall time they ran sequentially (N+1); if wall time ≤ 40% of the sum they ran in parallel (fan-out).
  • Root-cause errors are error spans none of whose descendants also errored.

For scripts and AI agents

  • JSON API: POST https://distributedtraceexplorer.usefulweb.site/api/v1/calculate (same calculation as this page)
  • Interface description: OpenAPI 3.1 · AI guide: llms.txt
  • MCP server (Streamable HTTP): https://distributedtraceexplorer.usefulweb.site/mcp · tool name distributed_trace_explorer
Example request
curl -s -X POST https://distributedtraceexplorer.usefulweb.site/api/v1/calculate \
  -H 'content-type: application/json' \
  -d '{…see OpenAPI examples…}'

Related tools

  • Query Plan Visualizer – PostgreSQL EXPLAIN (ANALYZE) or MySQL EXPLAIN JSON → plan tree, hot nodes and index suggestions.
  • Kubernetes Event Explorer – Paste kubectl events and get a timeline, reason taxonomy and likely root causes per workload.
Feedback