Cette page est affichée en anglais. Une traduction française est en cours.
SkillsApr 16, 2026·4 min de lecture

Grafana Tempo — Massively Scalable Distributed Tracing Backend

Grafana Tempo is a high-volume, minimal-dependency distributed tracing backend that ingests OpenTelemetry, Jaeger, and Zipkin spans into cheap object storage and integrates natively with Grafana for trace exploration.

Prêt pour agents

Installation avec revue préalable

Cet actif nécessite une revue. Le prompt copié demande un dry-run, affiche les écritures, puis continue seulement après confirmation.

Needs Confirmation · 64/100Policy : confirmer
Surface agent
Tout agent MCP/CLI
Type
Skill
Installation
Single
Confiance
Confiance : Community
Point d'entrée
Grafana Tempo tracing backend
Commande avec revue préalable
npx -y tokrepo@latest install 839b7415-3929-11f1-9bc6-00163e2b0d79 --target codex

Dry-run d'abord, confirmez les écritures, puis lancez cette commande.

TL;DR
Grafana Tempo stores distributed traces in cheap object storage and integrates natively with Grafana dashboards.
§01

What it is

Grafana Tempo is a high-volume, minimal-dependency distributed tracing backend. It ingests spans from OpenTelemetry, Jaeger, and Zipkin into object storage (S3, GCS, Azure Blob) and provides native integration with Grafana for trace visualization.

Tempo targets platform teams and SREs who need distributed tracing at scale without the operational overhead of running Elasticsearch or Cassandra clusters that traditional tracing backends require.

The project is actively maintained and suitable for both individual developers and teams looking to integrate it into their existing toolchain. Documentation and community support are available for onboarding.

§02

How it saves time or tokens

Tempo uses object storage instead of databases, cutting storage costs by 10-100x compared to Elasticsearch-backed alternatives. There is no indexing step, so ingestion throughput scales linearly. The TraceQL query language lets you search traces by attributes directly from Grafana without maintaining a separate query infrastructure.

For teams evaluating multiple tools in the same category, the clear documentation and active community reduce the time spent on research and troubleshooting. Getting started takes minutes rather than hours of configuration.

§03

How to use

  1. Deploy Tempo using the official Helm chart or Docker Compose setup.
  2. Configure your applications to send traces via OTLP (OpenTelemetry), Jaeger, or Zipkin protocols.
  3. Set up an object storage backend (S3, GCS, or local filesystem for testing).
  4. Add Tempo as a data source in Grafana and use the Explore view to query traces with TraceQL.
§04

Example

# tempo.yaml - minimal configuration
server:
  http_listen_port: 3200

distributor:
  receivers:
    otlp:
      protocols:
        grpc:
          endpoint: 0.0.0.0:4317
        http:
          endpoint: 0.0.0.0:4318

storage:
  trace:
    backend: s3
    s3:
      bucket: tempo-traces
      endpoint: s3.amazonaws.com
      region: us-east-1
§05

Related on TokRepo

§06

Common pitfalls

  • Expecting Tempo to index all span attributes by default. Tempo is a trace store, not a search engine. Use TraceQL for attribute-based queries but set up service graphs for discovery.
  • Skipping the compactor component. Without compaction, object storage fills with small files that degrade query performance over time.
  • Not setting trace retention policies. Object storage is cheap but not free. Configure max_block_duration and retention to control costs.
  • Not reading the changelog before upgrading. Breaking changes between versions can cause unexpected failures in production. Pin your version and review release notes.

Questions fréquentes

How does Tempo differ from Jaeger?+

Jaeger requires an indexed storage backend like Elasticsearch or Cassandra. Tempo stores traces in object storage without indexing, reducing operational complexity and cost. Both accept the same trace formats (OTLP, Jaeger, Zipkin).

Does Tempo require Grafana?+

No, but Tempo is designed to work with Grafana. Without Grafana, you can still query traces via the Tempo HTTP API. Grafana provides the visualization, TraceQL editor, and correlation with logs and metrics.

What is TraceQL?+

TraceQL is Tempo's query language for searching traces by span attributes, duration, status, and resource labels. It runs directly in Grafana's Explore view and supports complex filters like 'find traces where span duration > 500ms and service = payment'.

Can Tempo handle high-volume production traffic?+

Yes. Tempo is designed for high ingestion rates. Its architecture separates distributors (ingestion) from queriers (search), allowing independent scaling. Object storage backends handle virtually unlimited data volume.

What trace formats does Tempo support?+

Tempo natively ingests OpenTelemetry (OTLP over gRPC and HTTP), Jaeger (Thrift and gRPC), and Zipkin (JSON and Thrift). No format conversion is needed for applications already instrumented with these protocols.

Sources citées (3)

Fil de discussion

Connectez-vous pour rejoindre la discussion.
Aucun commentaire pour l'instant. Soyez le premier à partager votre avis.

Actifs similaires