---
title: "Compression and encoding | Grafana Tempo documentation"
description: "Learn about compression and encoding options available for Tempo."
---

> For a curated documentation index, see [llms.txt](/llms.txt). For the complete documentation index, see [llms-full.txt](/llms-full.txt).

# Compression and encoding

Tempo can compress traces that it pushes to backend storage. This requires extra memory and CPU, but it reduces the quantity of stored data. Anecdotal tests suggest that `zstd` will cut your storage costs to ~15% of the uncompressed amount. It is *highly* recommended to use the default `zstd`. (The compression field is used for the old v2 format. the vParquet* formats compress columns individually.)

Compression is configured under storage like so:

YAML ![Copy code to clipboard](/media/images/icons/icon-copy-small-2.svg) Copy

```yaml
storage:
  trace:
    block:
      v2_encoding: zstd
```

The following options are supported:

- none
- gzip
- lz4-64k
- lz4-256k
- lz4-1M
- lz4
- snappy
- zstd
- s2

Although all of these compression formats are supported in Tempo, at Grafana we use `zstd`. It’s possible/probable that the other compression algorithms may have issue at scale. File an issue if you have any problems.

## WAL

The WAL also supports compression. By default, this is configured to use `snappy`. This comes with a small performance penalty but reduces disk I/O and and adds checksums to the WAL. All of the above configuration options are supported but only `snappy` has been tested at scale.

![Copy code to clipboard](/media/images/icons/icon-copy-small-2.svg) Copy

```none
storage:
  trace:
    wal:
      v2_encoding: snappy
```
