What Is Thanos?
Updated
Thanos is an open source project that adds high availability and long-term storage to Prometheus. It sits alongside your existing Prometheus servers rather than replacing them, letting you query metrics across multiple Prometheus instances and clusters from a single endpoint, and store those metrics in object storage for as long as you need. It is a Cloud Native Computing Foundation (CNCF) incubating project, founded by Improbable, and licensed under Apache License 2.0.
If you already run Prometheus and are hitting limits around retention, cross-cluster querying, or redundant scrapers, Thanos is designed for exactly that situation.
The problems Thanos solves
Prometheus on its own is a single-node system. That creates a few practical constraints as your setup grows:
- Local storage only. Metrics live on the Prometheus server's disk, so retention is bounded by how much disk you can attach.
- No global view. Each Prometheus server answers queries only for the data it scraped. Querying across clusters means querying multiple endpoints.
- High availability is awkward. Running two identical Prometheus servers gives you redundancy, but they hold separate data, so a query against one may miss what the other has.
Thanos addresses each of these by adding components around Prometheus rather than changing how Prometheus scrapes.
Core capabilities
The project's own description lists four headline capabilities:
| Capability | What it does |
|---|---|
| Global query view | Query metrics across multiple Prometheus servers and clusters from one place |
| Unlimited retention | Extend the system with object storage to keep metrics indefinitely |
| Prometheus compatibility | Works with tools that use the Prometheus Query API, such as Grafana |
| Downsampling & compaction | Downsample historical data for faster queries over large time ranges, and configure complex retention policies |
Supported object storage backends include GCP, S3, Azure, Swift, and Tencent COS.
How it fits into a Prometheus setup
The typical pattern is to keep Prometheus scraping as it does today, then add Thanos components that upload blocks to object storage and serve queries over the combined data. Because Thanos exposes a Prometheus-compatible query API, existing dashboards and alerting that speak that API generally continue to work — the page explicitly names Grafana as an example.
Two ideas are worth separating:
- Long-term storage is about moving metric blocks off local disk into object storage so retention is no longer tied to a single server's disk.
- Global query view is about being able to ask one endpoint for data that originated from many Prometheus servers.
Downsampling and compaction are what make the long-term storage practical: without reducing the resolution of old data, querying months or years of metrics becomes slow.
Who uses it and how to get started
Thanos is used in production by a range of companies (the site has a "Used By" section) and has an active community with Slack, GitHub, and regular community meetings.
To start:
- Read the Getting Started and Design documentation on thanos.io to understand the component model.
- Download from the project's release page, or pull images from Quay.io or DockerHub.
- Join the community Slack if you hit questions during setup.
When Thanos is a good fit — and when it isn't
Thanos tends to make sense when you have multiple Prometheus servers or clusters and want a unified query layer, or when you need retention beyond what local disk allows and are comfortable operating object storage.
It is likely more than you need if you run a single small Prometheus instance with modest retention requirements and no cross-cluster querying needs — in that case the added components are operational overhead without much payoff.
Because Thanos is open source under Apache License 2.0, there is no license cost, but you are responsible for running the components and paying for whatever object storage you use. The site does not publish pricing, since the project itself is not a paid product; any commercial support or training would come from separate providers.