tempo
v3.1.1Grafana Tempo is a high volume, minimal dependency distributed tracing backend.
- Maintenance
- ActiveBased on the last push: commit history is not collected yet
- License
- AGPL-3.0Copyleft · OSI-approved · changed in 2021
- Security
- 1 advisory1 critical · Scorecard 8.5/10
- Supported versions
- No scheduleendoflife.date does not track this project
5.6k stars · 791 forks · 166 open issues · last release 24 days ago · data checked 4 hours ago
Breaking changes
What to check before upgrading, taken from the notes of the last 30 releases.
- v2.9.4Jul 24, 2026
🛑 Breaking changes 🛑
distributor: Dropped support for the OpenCensus receiver. (#7323) (@zhxiaogg)
- v2.10.6Jun 8, 2026
🛑 Breaking changes 🛑
distributor: Dropped support for the OpenCensus receiver. (#7322) (@zhxiaogg)
- v3.0.0May 28, 2026
Breaking Changes
Tempo 3.0 includes several operator-impacting removals and default changes. Review the migration guide before upgrading.
- The legacy ingester-based write path has been removed. Deployments must migrate to the 3.0 ingest/write architecture.
- Removed ingesters and the ingester module by @javiermolinar in #6504 / #6959
- Removed remaining app ingester config and
ingest.enabledby @javiermolinar in #6667 / #6873 - Removed partition ring livestore config by @javiermolinar in #6981
- Removed ingester and compactor alerts by @javiermolinar in #6369
- Removed v2 block encoding and the legacy v2 compactor component by @joe-elliott in #6273
- Removed v2-specific CLI commands:
list block,list index,view index,gen index, andgen bloom. - Centralized block and WAL config:
block_builderandlive_storenow always usestorage.trace.blocksettings; per-module block config fields are removed by @stoewer in #6647 - Recent data queries now guarantee complete results by failing when an instance is lagging. Defaults
query_frontend.query_end_cutoffto30sandlive_store.fail_on_high_lagtotrueby @mapno in #7210 / #7232 - Disabled legacy (flat, unscoped) overrides by default. Tempo refuses to start if legacy overrides are detected. Set
enable_legacy_overrides: trueor-config.enable-legacy-overrides=trueto opt back in temporarily. Legacy overrides will be removed in a future release by @electron0zero in #6741 - User-configurable overrides config
metrics_generator.processorsno longer merges with runtime overrides.metrics_generator.processorsnow takes precedence over runtime overrides, matching every other config in user-configurable overrides. Settingprocessors: []disables all processors for the tenant by @electron0zero in #7176 / #7185 - Enabled RetryInfo by default.
distributor.retry_after_on_resource_exhaustednow defaults to5s(was0) so OTLP clients receive a retry hint on ResourceExhausted errors by @electron0zero in #7088 - Set to
0to disable cluster-wide, or set the per-tenant overrideingestion.retry_info_enabled: falseto disable for a single tenant. - Removed duplicate
compactionprefix from CompactorConfig CLI flags by @electron0zero in #6909 compaction.compaction.block-retention→compaction.block-retentioncompaction.compaction.max-objects-per-block→compaction.max-objects-per-blockcompaction.compaction.max-block-bytes→compaction.max-block-bytescompaction.compaction.compaction-window→compaction.compaction-window- Removed OpenCensus receiver by @javiermolinar in #6523
- Removed legacy
mem-ballast-size-mbsCLI flag by @orkhan-huseyn in #6403 - tempo-cli: Support relative time (
now,now-1h) for start/end args and standardize on RFC3339 in all commands by @electron0zero in #6458 query searchcommand no longer accepts timestamps without timezone, for example2024-01-01T00:00:00; use RFC3339, for example2024-01-01T00:00:00Z, or relative time instead.
- v2.10.0Jan 26, 2026
Breaking Changes
- [CHANGE] BREAKING CHANGE Validate tenant ID in frontend and distributor #5786 (@carles-grafana)
- [CHANGE] Remove vParquet2 encoding #6071 (@mdisibio)
BREAKING CHANGE In the last release vParquet2 was deprecated and blocked from writes. Now, it's
removed entirely. It will no longer be recognized as a valid encoding and cannot read any remaining vParquet2 blocks. Installations
running with historical defaults should not require any changes as the default has been migrated for several releases. Installations
with storage settings pinned to vParquet2 must run a previous release configured for vParquet3 or higher until all existing vParquet2 blocks
have expired and been deleted from the backend, or else it will encounter read errors after upgrading to this release.
- v2.9.0Oct 13, 2025
Breaking Changes
- [CHANGE] BREAKING CHANGE Migrated Tempo Vulture and Integration Tests from the deprecated Jaeger agent/exporter to the standard OTLP exporter. Vulture now pushes traces to the Tempo OTLP GRCP endpoint. #5058 (@iamrajiv, @javiermolinar)
- [CHANGE] BREAKING CHANGE TraceQL Metrics buckets are calculated based on data in past. #5366 (@ruslan-mikhailov)
- [CHANGE] BREAKING CHANGE Fix incorrect TraceQL metrics results when series labels include strings and integers with same textural representation.
This also changes the TraceQL metrics responses of
/api/metrics/query_rangeand/api/metrics/queryto remove the redundantprom_labelsfield which was the error source. There may be an interruption to TraceQL metrics queries during rollout while components are running the previous version. #5659 (@mdisibio)- [CHANGE] BREAKING CHANGE Deprecating vParquet2 block format #5688 (@ie-pham)
Release history
All releases on GitHubSecurity
deps: Update Go to 1.27.3 (CVE-2026-56857, CVE-2026-56866, CVE-2026-78659, CVE-2026-78660, CVE-2026-78663, CVE-2026-78667, CVE-2026-78669, CVE-2026-94439, CVE-2026-94440, CVE-2026-94448, CVE-2026-97030, CVE-2026-97031, CVE-2026-97032, CVE-2026-111943) (#8148) (@mdisibio)