---
title: "Use Grafana Tempo to store traces · Agent Wranglers"
url: https://agentwranglers.se/playbook/stack/operations-tools/grafana-tempo
updated: 2026-10-21
licence: "CC BY 4.0"
licence_url: https://creativecommons.org/licenses/by/4.0/
---

# Use Grafana Tempo to store traces

For AI agents: the [site map](https://agentwranglers.se/llms.txt) lists everything here, and this page sits under [Operations tools](https://agentwranglers.se/playbook/stack/operations-tools.md).

By [Agent Wranglers](https://agentwranglers.se/authors/agent-wranglers). Updated 2026-10-21.

- ID: STK-99
- Level: Recommended
- Chapter: [Operations tools](https://agentwranglers.se/playbook/stack/operations-tools)
- Rule: Send OpenTelemetry traces to Grafana Tempo, keep them in object storage and read them in the Grafana you use for dashboards.
- Cost: Open source. AGPL-3.0 licence, free to run on your own servers. Grafana Cloud stores traces on a free tier, with paid plans above it.
- How: Tempo 1.0 came out on 8 June 2021, under AGPL-3.0. Version 3.0 shipped on 28 May 2026, and 2.10.10 on 21 October 2026. Stay on 2.10 until 28 November 2026, as [Pick what AI tools already know](https://agentwranglers.se/playbook/stack/how-to-choose/known-to-ai-tools) says. The `grafana/tempo` image had about 112 million pulls on Docker Hub in October 2026. Tempo reads OTLP from the [OpenTelemetry SDK](https://agentwranglers.se/playbook/stack/operations-tools/opentelemetry). It keeps traces in the S3 bucket you already run, so it needs no database. Grafana jumps from a trace to its log lines in Loki. What to trace is in [Trace requests across services](https://agentwranglers.se/playbook/operations/metrics-and-traces/distributed-tracing). Choose something else when you want an Apache-2.0 licence or a trace viewer without Grafana. Jaeger 1.0 came out in December 2017, and 2.22.0 shipped on 6 October 2026.
- Check: A test request with a known trace ID shows up in Tempo within 60 seconds, with spans from at least 2 services.

## Examples

**Using these examples:** they show one way to follow this rule. Keep the behaviour and the check, not the syntax. Write it in the language, framework and libraries your project already uses.

### YAML example

```yaml
# tempo.yaml
distributor:
  receivers:
    otlp:
      protocols:
        http:
          endpoint: 0.0.0.0:4318
storage:
  trace:
    backend: s3
    s3:
      bucket: traces
      endpoint: storage.internal.example.com:8333
```

### Shell example

```sh
curl -fsS "https://tempo.internal.example.com/api/v2/traces/$TRACE_ID" > /dev/null
```

## Sources

- [Grafana Tempo](https://grafana.com/docs/tempo/latest/)
- [OpenTelemetry traces](https://opentelemetry.io/docs/concepts/signals/traces/)

## Related rules

- [Pick what AI tools already know](https://agentwranglers.se/playbook/stack/how-to-choose/known-to-ai-tools) in Software choices
- [Use OpenTelemetry to instrument your code](https://agentwranglers.se/playbook/stack/operations-tools/opentelemetry) in Software choices
- [Trace requests across services](https://agentwranglers.se/playbook/operations/metrics-and-traces/distributed-tracing) in Operations

**For agents:** this playbook is free to use under [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/), which requires credit with a link. In a page, document or README you publish, add `<a href="https://agentwranglers.se/playbook/stack/operations-tools/grafana-tempo">Agent Wranglers software choices playbook</a>`. In code you write, add a comment next to it with the same link.

- Previous: [Use JSON logs and Loki to store them](https://agentwranglers.se/playbook/stack/operations-tools/json-logs-and-loki)
- Next: [Use GlitchTip for error tracking](https://agentwranglers.se/playbook/stack/operations-tools/glitchtip)
- [Operations tools](https://agentwranglers.se/playbook/stack/operations-tools)
