# thanos-io/thanos

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/thanos-io-thanos).**

14,121 stars · 2,318 forks · Go · Apache-2.0

## Links

- GitHub: https://github.com/thanos-io/thanos
- Homepage: https://thanos.io
- awesome-repositories: https://awesome-repositories.com/repository/thanos-io-thanos.md

## Topics

`cncf` `go` `google-cloud-storage` `hacktoberfest` `high-availability` `metrics` `monitoring` `observability` `prometheus` `prometheus-ha-pairs` `prometheus-setup` `s3` `storage` `thanos`

## Description

Thanos is a distributed metrics query engine and monitoring scalability suite designed to provide a unified interface for aggregating data from multiple Prometheus servers and clusters. It functions as a high availability monitoring backend that eliminates single points of failure by deduplicating data from replicated instances.

The system enables long-term retention by persisting time-series data to cloud-native object storage, allowing for unlimited historical archiving beyond the limits of local disks. It further optimizes this storage through a downsampling and retention manager that compresses historical data to reduce costs and accelerate query speeds.

The project covers broad capability areas including cross-cluster metric federation, stateless query execution, and automated data compaction. It also includes mechanisms for alert and recording rule evaluation and fault-tolerant query routing across distributed nodes.

## Tags

### System Administration & Monitoring

- [Global Prometheus Querying](https://awesome-repositories.com/f/system-administration-monitoring/global-prometheus-querying.md) — Provides a unified interface for aggregating and querying metrics across multiple distributed Prometheus clusters.
- [Cross-Cluster Metric Federation](https://awesome-repositories.com/f/system-administration-monitoring/cross-cluster-metric-federation.md) — Provides the ability to connect disparate clusters for unified querying and data visibility across environment boundaries. ([source](https://cdn.jsdelivr.net/gh/thanos-io/thanos@main/README.md))
- [Global Metric Aggregation](https://awesome-repositories.com/f/system-administration-monitoring/global-metric-aggregation.md) — Aggregates metric data from multiple distributed sources through a unified service to create a global view of system performance. ([source](https://thanos.io/tip/thanos/design.md/))
- [High-Availability Metric Deduplication](https://awesome-repositories.com/f/system-administration-monitoring/high-availability-metric-deduplication.md) — Eliminates single points of failure by identifying and removing duplicate metric samples from redundant Prometheus replicas.
- [Global Query Engines](https://awesome-repositories.com/f/system-administration-monitoring/logging-and-telemetry/telemetry-protocols/remote-write-protocols/prometheus-compatible-backends/global-query-engines.md) — Provides a global query engine that aggregates and unifies results from distributed Prometheus instances. ([source](https://thanos.io/v0.14/thanos/getting-started.md))
- [Retention Management](https://awesome-repositories.com/f/system-administration-monitoring/logging-and-telemetry/metric-data-ingestion/metric-downsamplers/retention-management.md) — Compresses historical metric data and applies retention policies to optimize storage costs and query speeds.
- [PromQL Rule Evaluation Engines](https://awesome-repositories.com/f/system-administration-monitoring/monitoring-and-observability/rule-based-alerting-engines/promql-rule-evaluation-engines.md) — Evaluates PromQL-based alerting and recording rules on a schedule to trigger notifications and pre-compute metrics. ([source](https://thanos.io/v0.4/thanos/getting-started.md))
- [Prometheus Remote Write Ingestion](https://awesome-repositories.com/f/system-administration-monitoring/prometheus-remote-write-ingestion.md) — Receives, validates, and batches Prometheus remote-write samples for long-term persistence in cloud storage. ([source](https://thanos.io/v0.4/thanos/getting-started.md))

### Data & Databases

- [Unified Live and Historical Metric Queries](https://awesome-repositories.com/f/data-databases/data-access-querying/historical-data-querying-interfaces/unified-live-and-historical-metric-queries.md) — Provides a query interface that seamlessly combines real-time data with archived object-storage blocks. ([source](https://thanos.io/v0.4/thanos/getting-started.md))
- [Distributed Query Engines](https://awesome-repositories.com/f/data-databases/distributed-query-engines.md) — Acts as a distributed query engine that aggregates metric data from multiple Prometheus servers into a single interface.
- [Distributed Query Processing](https://awesome-repositories.com/f/data-databases/distributed-query-processing.md) — Implements parallel execution of data queries across multiple distributed nodes to retrieve a unified result set. ([source](https://thanos.io/v0.3/thanos/getting-started.md))
- [High-Availability Metric Deduplications](https://awesome-repositories.com/f/data-databases/high-availability-metric-deduplications.md) — Deduplicates metric samples from redundant Prometheus replicas to ensure query results are accurate.
- [Object-Storage Persistence](https://awesome-repositories.com/f/data-databases/object-storage-persistence.md) — Persists immutable blocks of time-series data to cloud object storage for durable and unlimited scaling.
- [Object Storage Persistence](https://awesome-repositories.com/f/data-databases/object-storage-services/log-object-storage/object-storage-persistence.md) — Persists time-series data to cloud-native object stores to provide an unlimited historical metric archive.
- [Long-Term Metric Retentions](https://awesome-repositories.com/f/data-databases/query-engines/metric-query-languages/long-term-metric-retentions.md) — Implements policies and mechanisms for long-term metric retention in object storage without scaling storage nodes. ([source](https://cdn.jsdelivr.net/gh/thanos-io/thanos@main/README.md))
- [Block Consolidation](https://awesome-repositories.com/f/data-databases/block-storage/block-consolidation.md) — Merges small time-series data blocks into larger ones within object storage to reduce storage footprint and improve query performance. ([source](https://thanos.io/tip/thanos/design.md/))
- [Data Downsampling Strategies](https://awesome-repositories.com/f/data-databases/data-downsampling-strategies.md) — Employs data downsampling strategies to reduce the storage cost of old metrics and improve retrieval speed. ([source](https://cdn.jsdelivr.net/gh/thanos-io/thanos@main/README.md))
- [Distributed Block Compaction](https://awesome-repositories.com/f/data-databases/data-engineering-infrastructure/data-persistence-storage/data-storage/specialized-database-engines/time-series-data-storage/storage-compaction-utilities/distributed-block-compaction.md) — Merges and deduplicates metric blocks in object storage through parallel compaction across multiple instances.
- [Data Retention Policies](https://awesome-repositories.com/f/data-databases/data-retention-policies.md) — Applies down-sampling and retention policies to stored metrics to control storage growth. ([source](https://thanos.io/tip/thanos/design.md/))
- [Query Fan-out](https://awesome-repositories.com/f/data-databases/distributed-query-processing/query-fan-out.md) — Splits a single global request into multiple parallel queries across distributed data sources to aggregate a unified result.
- [Stateless Query Execution](https://awesome-repositories.com/f/data-databases/distributed-sql-querying/stateless-query-execution.md) — Runs queries across stateless instances that discover available data sources to minimize request fanout. ([source](https://thanos.io/tip/thanos/design.md/))
- [Object Storage Retrieval](https://awesome-repositories.com/f/data-databases/object-storage-retrieval.md) — Implements optimized data retrieval from object stores using block metadata and index caching to accelerate queries. ([source](https://thanos.io/tip/thanos/design.md/))
- [Metric Store Discovery](https://awesome-repositories.com/f/data-databases/query-engines/metric-query-languages/global-query-interfaces/metric-store-discovery.md) — Locates available data sources using address lists or DNS lookups to build a dynamic cluster for querying. ([source](https://thanos.io/v0.3/thanos/getting-started.md))
- [TSDB Block Index Caches](https://awesome-repositories.com/f/data-databases/search-indexing-technologies/search-indexing/search-and-indexing/static-content-indexing/in-memory-caches/tsdb-block-index-caches.md) — Caches TSDB block indexes in memory to translate data requests into optimized lookups within object storage.
- [Metric Aggregation & Downsampling](https://awesome-repositories.com/f/data-databases/time-series-databases/metric-aggregation-downsampling.md) — Reduces the resolution of historical time-series data to lower storage costs and accelerate long-term trend queries.

### DevOps & Infrastructure

- [Cross-Cluster Federation](https://awesome-repositories.com/f/devops-infrastructure/high-availability-clusters/multi-region-replication/cross-cluster-federation.md) — Connects disparate monitoring clusters to enable unified querying and analysis across different environment boundaries.
- [High Availability Observability](https://awesome-repositories.com/f/devops-infrastructure/high-availability-observability.md) — Ensures continuous telemetry collection and visibility by running redundant monitoring instances and deduplicating data.
- [Fault Tolerance Mechanisms](https://awesome-repositories.com/f/devops-infrastructure/fault-tolerance-mechanisms.md) — Implements fault-tolerant query routing to distribute requests across available components, ensuring resilience against node failures. ([source](https://cdn.jsdelivr.net/gh/thanos-io/thanos@main/README.md))
- [High Availability Systems](https://awesome-repositories.com/f/devops-infrastructure/high-availability-systems.md) — Distributes metric data and query processing across multiple nodes to ensure fault tolerance and continuous system availability. ([source](https://thanos.io/v0.30/thanos/getting-started.md))
- [Sidecar Data Uploaders](https://awesome-repositories.com/f/devops-infrastructure/sidecar-data-uploaders.md) — Runs as a companion process to Prometheus to ship local time-series blocks to remote object storage.

### Networking & Communication

- [Cluster Discovery Services](https://awesome-repositories.com/f/networking-communication/cluster-discovery-services.md) — Provides automated services for identifying and registering nodes in a distributed monitoring system. ([source](https://thanos.io/v0.2/thanos/getting-started.md))
- [Gossip-Based Discovery](https://awesome-repositories.com/f/networking-communication/peer-to-peer-networking/peer-discovery/peer-list-exchange/gossip-based-discovery.md) — Uses gossip protocols to exchange network addresses and discover available nodes for query routing.

### Software Engineering & Architecture

- [Stateless Serving Layers](https://awesome-repositories.com/f/software-engineering-architecture/software-architecture/architectural-patterns/layering-presentation/layered-architectures/stateless-serving-layers.md) — Decouples stateless request handling for queries from stateful data storage to enable independent scaling.

### Part of an Awesome List

- [Database Tools](https://awesome-repositories.com/f/awesome-lists/data/database-tools.md) — Highly available Prometheus setup.
- [Monitoring and Logging](https://awesome-repositories.com/f/awesome-lists/devops/monitoring-and-logging.md) — A system for high-availability and distributed storage for Prometheus.
