Leverage Prometheus for infinite storage capacity with Thanos
Running out of space on your Prometheus deployments? Save yourself from having to destroy half of your database or models with Thanos. This seamless add-on creates a highly available metric system with infinite storage capacity.
Ever feel like you are running out of space on your Prometheus deployments? Thanks to Thanos, there’s no need to blithely delete half of your database or data models. Thanos is a set of components that can be used to form a highly available metric system with an infinite storage capacity.
Rather than taking the utilitarian approach, Thanos allows developers to compose a seamless addition to their Prometheus deployments. There are easy integration points for custom metric providers, giving developers a customizable and scalable approach to storage.
By utilizing the Prometheus 2.0 storage format, it can efficiently store historical data while still maintaining operation simplicity and reliability. This even includes a massive query speedup because it downsamples the historical data. Any object storage is its only, optional dependency.
SEE ALSO: “Prometheus changed how the cloud-native world thinks of data ingestion scale and how it labels monitoring & other data”
Thanos also provides developers with a global query view across multiple Prometheus installations. It can even merge data from Prometheus HA pairs. Query-routing is fault tolerant. Additionally, Thanos maintains a simple gRPC “Store API” for unified data access across all metric data.
Thanos is a clustered system of components with distinct and decoupled purposes. These components include:
- Metric sources – A component that produces or collects metric data. Source advertises this data in the cluster to potential clients. Metric data can be retrieved via a well-known gRPC service. Thanos provides two components that act as data sources: the Prometheus sidecar and rule nodes.
- Stores – A store node acts as a gateway to block data that is stored in an object storage bucket. It implements the same gRPC API as data sources to provide access to all metric data found in the bucket.
- Queriers – Queriers are stateless and horizontally scalable instances that implement PromQL on top of the Store APIs exposed in the cluster. Queriers participate in the cluster to be able to resiliently discover all data sources and store nodes. Rule nodes in return can discover query nodes to evaluate recording and alerting rules.
All of Thanos’ features can be run independently, so developers can decide whether they’d like to gradually roll out the changes or make everything change with one snap of a finger.
If Josh Brolin is busy, there’s always GitHub. Thanos is open source and readily available for download there. Requirements include a Prometheus v2.2.1 + installation and golang 1.10+; an object storage bucket is optional.
There’s an incredibly helpful getting started guide available here. As always, feedback and contributions are incredibly welcome.
chris evans is the best chris