tempo

Query Grafana Tempo traces with TraceQL to identify latency and error patterns.

213|18|Updated Mar 17, 2026
One-click install
npx skills add https://github.com/grafana/skills --skill tempo-grafana
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: tempo
Source: https://github.com/grafana/skills/tree/main/skills/grafana-lgtm/tempo
Command: npx skills add https://github.com/grafana/skills --skill tempo-grafana

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

Tempo centralizes and indexes distributed traces so engineers can locate latency sources, surface errors, and trace causality across microservices without manual log stitching or ad-hoc sampling.

Core Features & Use Cases

  • TraceQL query language support for filtering, structural operators, aggregation, and metrics-from-traces to derive RED metrics and exemplars.
  • End-to-end deployment and ingestion guidance for OTLP, Jaeger, and Zipkin, plus multi-tenant headers, S3-compatible storage configuration, and Helm/Kubernetes patterns.
  • Use Case: Investigate a production latency spike by running TraceQL to find slow root services, inspect span attributes and downstream errors, and correlate with logs and metrics.

Quick Start

Use the tempo skill to run a TraceQL query that finds recent errors for the api service and return trace IDs and durations.

Frequently Asked Questions about tempo

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I query distributed traces in Grafana Tempo to find latency sources?

Query distributed traces in Grafana Tempo using TraceQL to filter spans, apply structural operators, and aggregate results to identify slow root services and downstream latency sources across microservices.

How does TraceQL work for filtering errors in distributed tracing?

TraceQL works for distributed tracing by providing a query language to filter spans, inspect span attributes, and surface errors. You can find recent errors for specific services and return trace IDs and durations.

Can I ingest traces from Jaeger and Zipkin into Tempo alongside OTLP?

Yes, Tempo supports trace ingestion from OTLP, Jaeger, and Zipkin formats. The deployment guidance covers ingestion configuration, multi-tenant X-Scope-OrgID header handling, and troubleshooting ingestion issues.

How do I generate RED metrics from traces in Tempo?

Generate RED metrics and exemplars from traces in Tempo using the metrics generator. TraceQL supports metrics-from-traces generation to derive rate, error, and duration metrics directly from ingested trace data.

What is the best way to deploy Tempo with S3-compatible storage on Kubernetes?

Deploy Tempo on Kubernetes using Helm patterns with S3-compatible storage configuration. The deployment guidance covers storage backend setup, metrics generator configuration, and tuning across Docker and Kubernetes environments.

Why are my Tempo traces not showing up when querying with TraceQL?

Traces may not show up in TraceQL due to ingestion issues with OTLP, Jaeger, or Zipkin formats, incorrect multi-tenant X-Scope-OrgID headers, or misconfigured storage backends. Troubleshoot ingestion formats and verify storage configuration.