Skip to content
forked from thanos-io/thanos

Highly available Prometheus setup with long term storage capabilities. CNCF Sandbox project.

License

Notifications You must be signed in to change notification settings

pracucci/thanos

This branch is 3117 commits behind thanos-io/thanos:main.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

5b7e33e · Dec 2, 2019
Oct 15, 2019
Dec 2, 2019
Nov 26, 2019
Dec 2, 2019
Aug 27, 2019
Nov 30, 2019
Dec 2, 2019
Nov 26, 2019
Nov 28, 2019
Nov 11, 2019
Mar 19, 2019
Mar 7, 2019
Sep 2, 2019
Jul 11, 2019
Oct 10, 2019
Nov 26, 2019
Apr 15, 2019
Oct 24, 2019
Nov 16, 2017
Oct 1, 2019
Oct 1, 2019
Nov 1, 2017
Nov 8, 2019
Oct 24, 2019
Oct 3, 2019
Nov 26, 2019
Jul 19, 2019
Nov 27, 2019
Nov 27, 2019
Jul 30, 2019
Apr 25, 2019

Repository files navigation

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 is a CNCF Sandbox 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

architecture_overview

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

Maintainers

See MAINTAINERS.md

About

Highly available Prometheus setup with long term storage capabilities. CNCF Sandbox project.

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Go 90.4%
  • JavaScript 3.5%
  • HTML 2.8%
  • Shell 1.4%
  • Makefile 1.0%
  • CSS 0.9%