tempo
Grafana Tempo is an open-source distributed tracing backend designed to ingest, store, and query trace data from OpenTelemetry, Jaeger, Zipkin, and Kafka sources. It uses object storage (S3, GCS, Azure, or local disk) as its primary dependency, making it cost-efficient and operationally straightforward. Deep integration with Grafana provides UI-driven trace analysis via TraceQL and the Traces Drilldown interface.
Key facts
Objective fields from the source. Values we can't verify are shown as “Unknown” rather than guessed.
| Field | Value |
|---|---|
| Repository | grafana/tempo |
| Owner | grafana |
| Primary language | Go |
| License | AGPL-3.0 — OSI-approved |
| Stars | 5.4k |
| Forks | 723 |
| Open issues | 174 |
| Latest release | v3.0.2 (2026-06-09) |
| Last updated | 2026-07-08 |
| Source | https://github.com/grafana/tempo |
What tempo is
Tempo written in Go, implements OpenTelemetry standards natively, and stores traces in Apache Parquet format. It accepts trace data in multiple protocols (OTLP, Jaeger, Zipkin, Kafka), buffers ingestion, and writes to pluggable object storage backends. TraceQL enables trace-first queries; TraceQL metrics (experimental) allows ad-hoc metric aggregation from trace data.
Get the tempo source
Clone the repository and explore it locally.
git clone https://github.com/grafana/tempo.gitcd tempo# follow the project's README for install & configurationNeed it deployed, integrated, or customized instead? DEV.co ships production installs.
Best use cases
Implementation considerations
- Object storage setup is non-negotiable: S3, GCS, Azure, or local disk must be provisioned and configured before Tempo ingestion begins. Plan for bucket policies, IAM, and retention policies upfront.
- Trace sampling and ingestion throttling must be configured at the collector level (OpenTelemetry Collector or equivalent) to prevent unbounded storage costs and query performance degradation.
- TraceQL metrics is experimental; validate feature stability and performance in non-production environments before relying on it for production alerting or SLO dashboards.
- Grafana version compatibility: ensure Grafana deployment supports the TraceQL version bundled with Tempo; version mismatches can cause UI/query failures.
- Data retention and archival: define trace TTL policies and plan for long-term archival (e.g., cold storage) to manage object storage costs at scale.
When to avoid it — and what to weigh
- Real-time sub-millisecond trace querying — Tempo is optimized for cost and scale, not lowest-latency queries. Object storage backends introduce inherent read latency; not suitable for sub-millisecond SLA requirements or interactive debugging sessions demanding instant response.
- Standalone deployment without Grafana — Tempo's trace querying strength depends heavily on Grafana UI and TraceQL. Using Tempo without Grafana integration significantly reduces usability; the backend alone provides limited ad-hoc query capabilities.
- Proprietary, closed-source infrastructure requirements — Tempo is AGPL-3.0-licensed. Internal modifications or embedding in proprietary products require legal review and may trigger copyleft obligations. Organizations with strict closed-source policies should evaluate this carefully.
- Simple, lightweight tracing with minimal operational overhead — Tempo requires object storage configuration, ingestion buffering, and Grafana deployment. Teams needing lightweight, all-in-one solutions may find simpler alternatives (e.g., Jaeger with local storage) more appropriate.
License & commercial use
Grafana Tempo is distributed under AGPL-3.0-only. The repo states: "For Apache-2.0 exceptions, see LICENSING.md." This means the primary license is copyleft (AGPL-3.0). Any exceptions must be explicitly listed in LICENSING.md.
AGPL-3.0 is a copyleft license. Use is restricted: internal deployment for observability is typically permitted, but embedding Tempo in a proprietary product, offering it as a service, or modifying and distributing it triggers AGPL-3.0 obligations (source code disclosure). The reference to Apache-2.0 exceptions in LICENSING.md suggests some components may be licensed more permissively, but this requires explicit review of that file. Recommend legal review before commercial or derivative use.
DEV.co evaluation signals
Editorial assessment — not user reviews. Directional, with an explicit confidence level.
| Signal | Assessment |
|---|---|
| Maintenance | Active |
| Documentation | Strong |
| License clarity | Needs review |
| Deployment complexity | Moderate |
| DEV.co fit | Good |
| Assessment confidence | High |
No explicit security audit details provided in README. Consider: object storage access control and encryption (S3 bucket policies, GCS IAM, Azure RBAC), TLS/mTLS for Tempo-to-Grafana communication, authentication on Tempo receivers (if exposed), and trace data sensitivity (PII in payloads). Trace data may contain sensitive business logic or user identifiers; plan for data masking, redaction, or differential privacy policies. AGPL-3.0 license: if deployed in cloud/SaaS, source code must remain accessible.
Alternatives to consider
Jaeger
Mature, CNCF-incubated distributed tracing backend. Supports Jaeger, Zipkin, OTLP. Uses Elasticsearch, Cassandra, or Badger for storage (not object-storage-first). Simpler operational model for small-to-medium scale; Apache-2.0 licensed (permissive).
Datadog APM
Fully managed SaaS distributed tracing with advanced analytics, anomaly detection, and service maps. No self-hosted operational overhead. Higher cost; vendor lock-in; proprietary. Suitable if cost and lock-in are acceptable trade-offs.
New Relic Distributed Tracing
Managed SaaS with integrated observability stack (metrics, logs, traces). No self-hosted complexity. Higher cost; vendor lock-in. Good fit for organizations already using New Relic.
Build on tempo with DEV.co software developers
Review the deployment examples, confirm object storage availability, and pilot Tempo with a small set of traces in your staging environment. Engage Grafana Labs support or community forums early if integrating with existing Prometheus/Loki infrastructure.
Talk to DEV.coRelated on DEV.co
Explore the category and the services that help you build with it.
tempo FAQ
Can I run Tempo without object storage?
Is Tempo compatible with Prometheus and Loki?
What is TraceQL and is it production-ready?
Can I use Tempo behind a firewall or air-gapped network?
Custom software development services
From first prototype to production, DEV.co delivers software development services around tools like tempo. Our software development agency staffs experienced software developers and web developers for custom software development, web development, integrations, and ongoing support across open-source observability and beyond.
Ready to evaluate Tempo for your observability stack?
Review the deployment examples, confirm object storage availability, and pilot Tempo with a small set of traces in your staging environment. Engage Grafana Labs support or community forums early if integrating with existing Prometheus/Loki infrastructure.