whatisgithub

What is tempo?

grafana/tempo — explained in plain English

Analysis updated 2026-06-26

5,284GoAudience · ops devopsComplexity · 4/5LicenseSetup · moderate

In one sentence

A low-cost, open source system for storing and searching distributed traces, records of how requests travel through your app's services, using cheap object storage like Amazon S3 instead of a database.

Mindmap

mindmap
  root((repo))
    What it does
      Store distributed traces
      Search trace data
      Generate trace metrics
    Storage
      Amazon S3
      Google Cloud Storage
      Azure Blob Storage
    Input Formats
      OpenTelemetry
      Jaeger
      Zipkin
    Query
      TraceQL language
      Traces Drilldown UI
    Integrations
      Grafana dashboards
      Prometheus metrics
      Loki logs
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Find why specific API requests are slow by searching traces across multiple microservices.

USE CASE 2

Store months of distributed trace data cheaply using S3 without a separate index database.

USE CASE 3

Query and aggregate trace data using the TraceQL language to build dashboards showing error rates.

USE CASE 4

Connect Tempo to an existing Jaeger or Zipkin setup without changing your app's instrumentation.

What is it built with?

GoOpenTelemetryGrafanaPrometheusJaegerZipkin

How does it compare?

grafana/tempokelseyhightower/envconfiggrafana/mimir
Stars5,2845,4545,107
LanguageGoGoGo
Last pushed2025-06-28
MaintenanceStale
Setup difficultymoderateeasyhard
Complexity4/52/54/5
Audienceops devopsdeveloperops devops

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · moderate Time to first run · 1h+

Requires an object storage bucket such as S3 or GCS and a running Grafana instance to visualize traces.

Open source under AGPL-3.0, free to use and modify, but distributing it or running it as a hosted service requires sharing your changes under the same license.

So what is it?

Grafana Tempo is an open source system for storing and searching distributed traces. A distributed trace is a record of what happened when a user request moved through multiple services in an application, showing exactly how long each step took and where errors occurred. This kind of data is valuable for understanding why an application is slow or why requests are failing. Tempo is designed to handle large volumes of trace data at low cost. It stores all traces in object storage such as Amazon S3, Google Cloud Storage, or Azure Blob Storage, which is inexpensive compared to traditional databases. It does not require a separate index or search database to operate, which keeps its infrastructure simple. The system accepts trace data in several common formats, including OpenTelemetry (a widely adopted open standard), Jaeger, and Zipkin, so it can work with most existing tracing setups. Tempo also includes its own query language called TraceQL, which lets users search for specific traces or patterns across large datasets. An experimental feature allows TraceQL to generate metrics from trace data, so you can aggregate and chart trace information in ways usually reserved for metrics systems. A companion visual interface called Traces Drilldown, built into Grafana, lets users explore trace data through point-and-click navigation without writing queries. It highlights slow requests, high error rates, and unusual patterns automatically. Tempo is maintained by Grafana Labs and integrates with other Grafana products including Prometheus for metrics and Loki for logs. It is released under the AGPL-3.0 open source license.

Copy-paste prompts

Prompt 1
Help me write a TraceQL query to find all traces in Grafana Tempo where the database call took longer than 500ms.
Prompt 2
I am setting up Grafana Tempo with S3 storage. Give me a minimal config file for a single-binary deployment to try it out.
Prompt 3
How do I configure my existing Jaeger instrumentation to send traces to Grafana Tempo instead?
Prompt 4
I want to alert when my service error rate exceeds 5 percent. How do I generate a metric from Tempo's trace data using TraceQL metrics?
Prompt 5
Walk me through connecting Grafana Tempo to a Grafana dashboard so I can visualize slow requests alongside Prometheus metrics.

Frequently asked questions

What is tempo?

A low-cost, open source system for storing and searching distributed traces, records of how requests travel through your app's services, using cheap object storage like Amazon S3 instead of a database.

What language is tempo written in?

Mainly Go. The stack also includes Go, OpenTelemetry, Grafana.

What license does tempo use?

Open source under AGPL-3.0, free to use and modify, but distributing it or running it as a hosted service requires sharing your changes under the same license.

How hard is tempo to set up?

Setup difficulty is rated moderate, with roughly 1h+ to a first successful run.

Who is tempo for?

Mainly ops devops.

Open on GitHub → Ask about another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.