Grafana Tempo is an open source, easy-to-use and high-scale distributed tracing backend. Tempo is cost-efficient, requiring only object storage to operate, and is deeply integrated with Grafana, Prometheus, and Loki.
Tempo is Jaeger, Zipkin, Kafka, OpenCensus and OpenTelemetry compatible. It ingests batches in any of the mentioned formats, buffers them and then writes them to Azure, GCS, S3 or local disk. As such it is robust, cheap and easy to operate!
Tempo implements TraceQL, a traces-first query language inspired by LogQL and PromQL. This query language allows users to very precisely and easily select spans and jump directly to the spans fulfilling the specified conditions:
To learn more about Tempo, consult the following documents & talks:
- New in Grafana Tempo 2.0: Apache Parquet as the default storage format, support for TraceQL
- Get to know TraceQL: A powerful new query language for distributed tracing
If you have any questions or feedback regarding Tempo:
- Grafana Labs hosts a forum for Tempo. This is a great place to post questions and search for answers.
- Ask a question on the Tempo Slack channel.
- File an issue for bugs, issues and feature suggestions.
- UI issues should be filed with Grafana.
Tempo's receiver layer, wire format and storage format are all based directly on standards and code established by OpenTelemetry. We support open standards at Grafana!
Check out the Integration Guides to see examples of OpenTelemetry instrumentation with Tempo.
tempo-vulture is Tempo's bird themed consistency checking tool. It writes traces to Tempo and then queries them back in a variety of ways.
tempo-cli is the place to put any utility functionality related to Tempo. See Documentation for more info.
Grafana Tempo is distributed under AGPL-3.0-only. For Apache-2.0 exceptions, see LICENSING.md.