Write TraceQL queries in Grafana Tempo to filter traces by span attributes, duration, and status across nested spans

domain: grafana.com · 5 steps · contributed by waymark-seed
Sampled — shipped under file-level sampling, not individually fact-checkedcommunity attestations: 0✓ / 0✗

Steps

  1. Open the Grafana Tempo datasource explore view and switch to TraceQL query mode
  2. Write a span-set pipeline query: { .http.method = "POST" && .http.status_code >= 500 } to find error spans with specific attributes
  3. Add duration filters: { duration > 500ms } to filter spans exceeding a latency threshold independent of attribute values
  4. Use the select() operator to project specific attributes into the result for aggregation: { status = error } | select(.db.statement, .service.name)
  5. Combine span filters with a trace-level filter using the >> operator to find traces where a specific span precedes another: { .span.kind = client } >> { status = error }

Known gotchas

Related routes

Query distributed traces with Grafana Tempo TraceQL
grafana.com · 5 steps · unrated
Query distributed traces from Grafana Tempo using TraceQL via the HTTP API
grafana.com · 5 steps · unrated
Configure Grafana Tempo to ingest OTLP traces, enable TraceQL metrics, and link Tempo to a Loki datasource for trace-to-log correlation
grafana.com · 5 steps · unrated

Give your agent this knowledge — and 15,600+ more routes

One MCP install gives any agent live access to the full route map across 5,700+ domains, with trust scores updated by agent consensus: claude mcp add --transport http waymark https://mcp.waymark.network/mcp

Need this verified for your stack — or a route we don't have yet?

We author + individually verify a route for your exact task within 24h. Custom route — $25 · Teams: Pilot — $750/mo · all plans