Skip to content
Highly available Prometheus setup with long term storage capabilities.
Go JavaScript HTML Shell CSS Makefile
Branch: master
Clone or download
bwplotka and brancz Reduced memory for CI job. (#1436)
Signed-off-by: Bartek Plotka <bwplotka@gmail.com>
Latest commit ab4fdc9 Aug 19, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.circleci Reduced memory for CI job. (#1436) Aug 19, 2019
.github Further docs rename to new org; Improved docker login. (#1344) Jul 19, 2019
cmd/thanos Upgraded Prometheus deps to pre 2.12-rc.0; Moved to TSDB inside Prome… Aug 14, 2019
docs Correct bullet points and remove trailing whitespaces (#1434) Aug 19, 2019
examples Change y-axis unit to rps for rps graph (#950) Mar 20, 2019
pkg prometheus.go: fix typos in error message (#1419) Aug 15, 2019
scripts Use variables for executables (#1391) Aug 12, 2019
test Upgraded Prometheus deps to pre 2.12-rc.0; Moved to TSDB inside Prome… Aug 14, 2019
tutorials Upgraded Prometheus deps to pre 2.12-rc.0; Moved to TSDB inside Prome… Aug 14, 2019
website Add XING to adopters (#1416) Aug 15, 2019
.dep-finished Azure maturity level (#936) Mar 19, 2019
.errcheck_excludes.txt Switch to Go 1.12 & replace dep by go mod (#868) Mar 7, 2019
.gitignore Fixed makefile for OSX. (#1384) Aug 8, 2019
.golangci.yml .*: update prometheus client, remove deprecated InstrumentHandler and… Jul 11, 2019
.promu.yml thanos-io (#1343) Jul 19, 2019
CHANGELOG.md Adjusted Makefile; added important changelog item. (#1422) Aug 15, 2019
CODE_OF_CONDUCT.md Added website for Thanos' docs using Hugo. (#807) Apr 15, 2019
CONTRIBUTING.md update CONTRIBUTING.md to match make deps (#1426) Aug 16, 2019
Dockerfile Added Kube manifests for GCS-enabled setup + store. Added small tutor… Nov 16, 2017
Dockerfile.multi-stage thanos-io (#1343) Jul 19, 2019
LICENSE Initial commit Nov 1, 2017
MAINTAINERS.md Further docs rename to new org; Improved docker login. (#1344) Jul 19, 2019
Makefile Reduced memory for CI job. (#1436) Aug 19, 2019
README.md Further docs rename to new org; Improved docker login. (#1344) Jul 19, 2019
VERSION CHANGELOG/VERSION: bring 0.6.0 into master (#1336) Jul 18, 2019
doc.go thanos-io (#1343) Jul 19, 2019
go.mod Replace k8s.io dependencies with specific pinned version (#1421) Aug 15, 2019
go.sum Replace k8s.io dependencies with specific pinned version (#1421) Aug 15, 2019
katacoda.yaml Added katacoda.yaml (#1359) Jul 30, 2019
netlify.toml website: Fixing netlify. (#1080) Apr 25, 2019

README.md

Thanos Logo

CircleCI Go Report Card GoDoc Slack Netlify Status

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 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.

Architecture Overview

architecture_overview

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

Thanos Philosophy

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

  • Each sub command should do one thing and do it well
    • eg. 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

Master should be stable and usable. Every commit to master builds docker image named master-<data>-<sha>.

We also perform minor releases every 6 weeks. During that, we build tarballs for major platforms and docker image.

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:

Maintainers

See MAINTAINERS.md

You can’t perform that action at this time.