tempo

Ingest telemetry traces into Grafana Tempo and query them with TraceQL.

1|Updated May 21, 2026
One-click install
npx skills add https://github.com/1k-off/umbraco-observability-playground --skill tempo-1k-off
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: tempo
Source: https://github.com/1k-off/umbraco-observability-playground/tree/main/.agents/skills/tempo
Command: npx skills add https://github.com/1k-off/umbraco-observability-playground --skill tempo-1k-off

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Grafana Tempo helps you locate root causes across distributed systems by storing and querying high-cardinality trace data, so you can turn “slow or failing requests” into actionable evidence across services.

Core Features & Use Cases

  • TraceQL troubleshooting: filter spans with attribute scopes (span/resource/event/intrinsic) and use structural operators to follow relationships between spans.
  • Trace ingestion compatibility: accept OTLP, Jaeger, and Zipkin traffic, making it easy to plug Tempo into standard telemetry pipelines.
  • Trace-derived metrics: generate service graphs and span metrics from traces to correlate latency, errors, and topology with dashboards.
  • Production deployment guidance: understand the distributor/ingester/compactor/querier/metrics-generator architecture plus tuning, caching, multi-tenancy, and API usage.
  • Grafana integrations: link traces to logs (Loki), metrics (Prometheus/Mimir), and profiles (Pyroscope) using Tempo data source features and exemplars.

Quick Start

Deploy Tempo and send traces from your OpenTelemetry pipeline to it, then explore traces in Grafana using TraceQL queries such as selecting error spans or latency outliers per service.

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 using TraceQL?

Query distributed traces in Grafana Tempo by using TraceQL span selectors with attribute scopes like resource, span, event, and intrinsic. Apply structural operators to filter spans and follow relationships across services for root cause analysis.

Can I send OpenTelemetry, Jaeger, and Zipkin traces to Grafana Tempo?

Yes, Grafana Tempo supports trace ingestion from OpenTelemetry (OTLP), Jaeger, and Zipkin traffic, allowing you to easily plug Tempo into standard telemetry pipelines without changing existing tracing formats.

How do I generate service graphs and span metrics from distributed traces?

Generate service graphs and span metrics from distributed traces by configuring Tempo's metrics-generator. This correlates trace latency, errors, and topology with RED metrics to build comprehensive observability dashboards.

How do I correlate traces with logs and metrics in Grafana?

Correlate traces with logs and metrics by linking Tempo data with Loki, Prometheus, Mimir, and Pyroscope. Use Tempo data source features and exemplars to navigate between traces, logs, metrics, and profiles.

What components do I need to configure for a Grafana Tempo production deployment?

Configure the distributor, ingester, compactor, querier, and metrics-generator components for a Grafana Tempo production deployment. Tune caching, multi-tenancy, and API usage to handle high-cardinality trace data.

Why use TraceQL structural operators for troubleshooting microservices?

Use TraceQL structural operators for troubleshooting microservices to follow relationships between spans. This approach turns slow or failing requests into actionable evidence by locating root causes across distributed systems.