Highly available Prometheus setup with long term storage capabilities. A CNCF Incubating project.
Go to file
Giedrius Statkevičius 1c4d17bd12
Merge pull request #8466 from thanos-io/add_missing_path
scripts/genproto: add missing dir
2025-09-03 15:05:22 +03:00
.bingo *: update to Go 1.25 2025-08-25 10:47:20 +03:00
.circleci *: update to Go 1.25 2025-08-25 10:47:20 +03:00
.devcontainer Bump devcontainer Dockerfile base image from go1.22 to go1.23 (#8031) 2024-12-31 13:44:21 -08:00
.github *: update to Go 1.25 2025-08-25 10:47:20 +03:00
cmd/thanos compact: ensure we don't mark blocks for deletion again 2025-08-28 14:47:16 +03:00
docs docs: volunteer as v0.40.0 shepherd 2025-09-03 11:11:06 +03:00
examples docs: restore alert rules in examples/alerts/alerts.md 2025-09-01 11:39:39 +05:30
internal/cortex scripts/genproto: add missing dir 2025-09-03 12:33:08 +03:00
mixin mixin: Fix all spelling issues discovered by codespell. 2024-08-16 15:49:29 +02:00
pkg block: assume that we do not unmark a block for deletion 2025-09-03 11:34:36 +03:00
scripts scripts/genproto: add missing dir 2025-09-03 12:33:08 +03:00
test *: Apply modernize analyzer to the codebase 2025-08-27 16:33:31 +01:00
tutorials tutorials: Fix all spelling issues discovered by codespell. 2024-08-16 15:25:15 +02:00
website fix: maintain expanded state based on current page (#8266) 2025-05-30 12:07:23 +03:00
.busybox-versions Updates busybox SHA (#6982) 2023-12-15 14:43:24 -08:00
.cortex-packages.txt chore: Vendor Cortex dependency as an internal package (#5504) 2022-07-15 09:32:07 -07:00
.dockerignore UI: Use native go:embed instead of go-bindata (#6900) 2023-11-18 10:28:51 +05:30
.gitattributes chore: Vendor Cortex dependency as an internal package (#5504) 2022-07-15 09:32:07 -07:00
.gitignore UI: Use native go:embed instead of go-bindata (#6900) 2023-11-18 10:28:51 +05:30
.gitpod.yml Add .gitpod (#3499) 2020-11-24 13:04:16 +01:00
.go-version *: bump Go to 1.24 (#8105) 2025-02-18 12:41:03 +00:00
.golangci.yml *: update to Go 1.25 2025-08-25 10:47:20 +03:00
.mdox.prev-release.yaml docs: Add `mdox` remote/local link checking and move web preprocess (#4357) 2021-08-17 11:47:31 +01:00
.mdox.validate.yaml docs: ignore itnext.io in link validation due to TLS issues 2025-09-01 11:28:28 +05:30
.mdox.yaml Added website page for companies who offer consultancy and enterprise… (#7000) 2023-12-24 13:55:17 -08:00
.promu.yml .promu: bump to 1.25 2025-08-25 12:42:18 +03:00
CHANGELOG.md docs: clarify Compactor wording in compact.md 2025-09-01 11:28:21 +05:30
CODE_OF_CONDUCT.md docs: Added auto-formating and link localizing for all docs. (#4339) 2021-06-17 19:40:11 +05:30
CONTRIBUTING.md Fix all spelling issues discovered by codespell. 2024-08-16 16:01:11 +02:00
Dockerfile refactor: chown on COPY in Dockerfile to reduce image size 2025-08-18 17:54:38 +02:00
Dockerfile.e2e-tests *: update to Go 1.25 2025-08-25 10:47:20 +03:00
Dockerfile.multi-arch feat: Use non root user as default user in container image (#6107) 2023-03-17 11:21:38 +00:00
Dockerfile.multi-stage *: bump Go to 1.24 (#8105) 2025-02-18 12:41:03 +00:00
LICENSE Initial commit 2017-11-01 17:38:04 +00:00
MAINTAINERS.md docs: apply MDOX auto-formatting 2025-09-01 11:28:28 +05:30
Makefile build: bump promu to set build tags 2025-07-31 12:10:39 +00:00
README.md Update info on thanoscon 2024-05-24 17:39:30 +01:00
SECURITY.md docs: Added auto-formating and link localizing for all docs. (#4339) 2021-06-17 19:40:11 +05:30
VERSION CHANGELOG: indicate release (#8319) 2025-06-19 17:59:12 +03:00
doc.go Update reference of master to main in docs (#3849) 2021-03-01 16:37:22 +00:00
go.mod .promu: bump to 1.25 2025-08-25 12:42:18 +03:00
go.sum store/labelpb: add unmarshaling benchmarks 2025-08-18 15:45:54 +03:00
netlify.toml Added blog space on Thanos website. (#5873) 2022-11-07 11:53:30 -08:00

README.md

Thanos Logo

Latest Release Go Report Card Go Code reference Slack Netlify Status CII Best Practices

CI CI go react docs Gitpod ready-to-code Open in GitHub Codespaces

📢 ThanosCon happened on 19th March 2024 as a co-located half-day on KubeCon EU in Paris.

Overview

Thanos is a set of components that can be composed into a highly available metric system with unlimited storage capacity, which can be added seamlessly on top of existing Prometheus deployments.

Thanos is a CNCF Incubating project.

Thanos leverages the Prometheus 2.0 storage format to cost-efficiently store historical metric data in any object storage while retaining fast query latencies. Additionally, it provides a global query view across all Prometheus installations and can merge data from Prometheus HA pairs on the fly.

Concretely the aims of the project are:

  1. Global query view of metrics.
  2. Unlimited retention of metrics.
  3. High availability of components, including Prometheus.

Getting Started

Features

  • Global querying view across all connected Prometheus servers
  • Deduplication and merging of metrics collected from Prometheus HA pairs
  • Seamless integration with existing Prometheus setups
  • Any object storage as its only, optional dependency
  • Downsampling historical data for massive query speedup
  • Cross-cluster federation
  • Fault-tolerant query routing
  • Simple gRPC "Store API" for unified data access across all metric data
  • Easy integration points for custom metric providers

Architecture Overview

Deployment with Sidecar for Kubernetes:

Sidecar

Deployment with Receive in order to scale out or implement with other remote write compatible sources:

Receive

Thanos Philosophy

The philosophy of Thanos and our community is borrowing much from UNIX philosophy and the golang programming language.

  • Each subcommand should do one thing and do it well
    • e.g. thanos query proxies incoming calls to known store API endpoints merging the result
  • Write components that work together
    • e.g. blocks should be stored in native prometheus format
  • Make it easy to read, write, and, run components
    • e.g. reduce complexity in system design and implementation

Releases

Main branch should be stable and usable. Every commit to main builds docker image named main-<date>-<sha> in quay.io/thanos/thanos and thanosio/thanos dockerhub (mirror)

We also perform minor releases every 6 weeks.

During that, we build tarballs for major platforms and release docker images.

See release process docs for details.

Contributing

Contributions are very welcome! See our CONTRIBUTING.md for more information.

Community

Thanos is an open source project and we value and welcome new contributors and members of the community. Here are ways to get in touch with the community:

Adopters

See Adopters List.

Maintainers

See MAINTAINERS.md