Where Does Grafana Tempo Store Traces?
Tempo keeps WAL and blocks under configured data paths locally, with object storage required for production.
Last updated
Tempo splits local state three ways. The write ahead log takes incoming spans first. Blocks hold flushed Parquet trace data per tenant. The live store and caches sit in a working directory alongside. Linux guide defaults put WAL and blocks under /data/tempo, with flag defaults under /var/tempo.
Local backends suit single node testing only. Production and any distributed layout need object storage, since queriers across machines cannot read one local disk. The metrics generator adds its own WAL path when enabled, so count that in disk plans too.
Where Grafana Tempo stores this, by platform
/data/tempo/blocks
Holds tenant block dirs with data parquet plus meta JSON. Set retention to bound growth. Production replaces this path with a bucket.
/data/tempo/wal
Ingest WAL path from guides and flags. Live store and caches work beside it. Keep it on persistent disk even in test installs.
Frequently asked questions
How do I store Tempo traces in production?
Point the backend at S3, GCS, or Azure in the storage block. Local disk only works for single process mode, since distributed queriers cannot share one disk.
Local disk keeps filling. What trims it?
Lower the block retention setting in the compaction config. Local blocks pile up for the default 14 days, so short retention is the disk saver.
Why do just sent traces not appear yet?
Check the live store flush timing. Recent traces sit in memory and reach blocks 15 to 30 seconds later, so fresh data lags briefly by design.
Notice an outdated path? Let us know.