This is documentation for the next version of Tempo. For the latest stable release, go to the latest version.
Get started with Grafana Tempo
You can use Grafana Cloud to avoid installing, maintaining, and scaling your own instance of Grafana Tempo. Create a free account to get started, which includes free forever access to 10k metrics, 50GB logs, 50GB traces, 500VUh k6 testing & more.
Distributed tracing visualizes the lifecycle of a request as it passes through a set of applications. For more information about traces, refer to Introduction to traces.
Grafana Tempo is an open source, easy-to-use, and high-scale distributed tracing backend. Tempo lets you search for traces, generate metrics from spans, and link your tracing data with logs and metrics.
To build a tracing pipeline, you need four major components: client instrumentation, pipeline, backend, and visualization.
This diagram illustrates a tracing system configuration:
Client instrumentation
Client instrumentation (1 in the diagram) is the first building block to a functioning distributed tracing visualization pipeline. Client instrumentation is the process of adding instrumentation points in the application that create and offload spans.
Note
To learn more about instrumentation, read the Instrument for tracing documentation to learn how to instrument your favorite language for distributed tracing.
Pipeline (Grafana Alloy)
Once your application is instrumented for tracing, the traces need to be sent to a backend for storage and visualization. You can build a tracing pipeline that offloads spans from your application, buffers them, and eventually forwards them to a backend. Tracing pipelines are optional (most clients can send directly to Tempo), but the pipelines become more critical the larger and more robust your tracing system is.
Grafana Alloy is a service that is deployed close to the application, either on the same node or within the same cluster (in Kubernetes) to quickly offload traces from the application and forward them to a storage backend. Alloy also abstracts features like trace batching to a remote trace backend store, including retries on write failures.
To learn more about Grafana Alloy and how to set it up for tracing with Tempo, refer to Grafana Alloy configuration for tracing.
Note
The OpenTelemetry Collector / Jaeger Agent can also be used at the agent layer. Refer to this blog post to see how the OpenTelemetry Collector can be used with Tempo.
Backend (Tempo)
Grafana Tempo is an easy-to-use and high-scale distributed tracing backend used to store and query traces. The tracing backend stores and retrieves traces on demand.
Getting started with Tempo is easy.
First, check out the examples for ideas on how to get started with Tempo.
Next, review the Setup documentation for step-by-step instructions for setting up Tempo and creating a test application.
Tempo offers different deployment options, depending upon your needs. Refer to the plan your deployment section for more information
Note
Grafana Alloy is already set up to use Tempo. Refer to Grafana Alloy configuration for tracing.
Visualization (Grafana)
Grafana has a built-in Tempo data source that can be used to query Tempo and visualize traces. For more information, refer to the Tempo data source and the Tempo in Grafana topics.