Grafana Tempo is an open source distributed tracing backend written in Go that prioritizes high volume ingestion with minimal operational dependencies. The project is designed to be cost-efficient by requiring only object storage to operate, making it accessible for organizations of any scale. Tempo integrates deeply with Grafana, Prometheus, and Loki, positioning itself as a core component within the Grafana observability ecosystem.
The repository accepts trace data in multiple formats including Jaeger, Zipkin, Kafka, and OpenTelemetry, providing broad compatibility across instrumentation standards. Incoming trace batches are buffered and written to cloud storage backends such as Azure, GCS, and S3, or to local disk for simpler deployments. This architecture enables Tempo to handle high-volume tracing workloads without requiring expensive specialized infrastructure.
Tempo implements TraceQL, a traces-first query language inspired by LogQL and PromQL, enabling both targeted queries and rich UI-driven trace analysis. An experimental TraceQL metrics feature allows users to create metrics from traces by applying functions to query results, supporting ad hoc aggregation across any dimension present in trace data. The Traces Drilldown UI, introduced as part of the Grafana Explore suite, provides a queryless interface for analyzing tracing data with point-and-click interactions, RED metrics overviews, and automated trace comparison capabilities.
The project maintains active development with 664 tracked issues and pull requests showing a median response latency of 9.9 hours. The most frequently applied issue labels are stale (205 occurrences), keepalive (177 occurrences), and type/docs (97 occurrences), indicating ongoing maintenance and documentation efforts. Joe Elliott leads contributor activity with 785 tracked events, followed by knylander-grafana with 363 events and javiermolinar with 146 events. The repository shares overlapping contributors with grafana/grafana, open-telemetry/opentelemetry-collector-contrib, and jaegertracing/jaeger, reflecting its position within the broader observability and tracing ecosystems.
The codebase includes utility components such as tempo-vulture, a consistency checking tool that writes and queries traces to verify system integrity, and tempo-cli, which provides operational utilities for Tempo administration. The project is distributed under AGPL-3.0-only with Apache-2.0 exceptions documented in LICENSING.md. Deployment examples are provided for Docker Compose, Helm, and Jsonnet, supporting various operational environments. The community maintains active support channels including a Grafana forum, Slack channel, and GitHub issue tracking for bugs and feature requests.