Table of Contents
When you hear the word "Thanos," your first thought might be the Marvel Cinematic Universe villain from the Avengers: Infinity War film who seeks to collect the Infinity Stones and end half of all life in the universe. But if you mention the word to a data nerd, you're likely to get a very different response.
Prometheus is a free and open-source platform for real-time systems and event monitoring and alerting. The Prometheus project was originally developed at SoundCloud, and in 2016 became part of the Cloud Native Computing Foundation, which also manages popular frameworks such as Kubernetes. The Prometheus server is the project's core: it acts as the system’s “brain," capturing various user-defined metrics and saving them in a time-series database.
Thanos calls itself an "open-source, highly available Prometheus setup with long-term storage capabilities." But what is Thanos exactly? What are the use cases of Thanos, and how does Thanos integrate with Prometheus? Keep reading for all the answers.
What is Thanos?
Thanos is an open-source extension to Prometheus created by Improbable, a British gaming technology company. In their blog post announcing the release of Thanos, Improbable revealed the project's goal: "to seamlessly transform existing Prometheus deployments in clusters around the world into a unified monitoring system with unbounded historical data storage."
By adding Thanos to Prometheus, users can build highly available metric systems with practically unlimited storage. When deployed, Thanos provides features such as a global query view, high accessibility (HA), and affordable access to historical data in a single binary.
If you're interested in trying it out for yourself, sign up for our Hosted Prometheus free trial. You can also sign up for a demo and we can talk about the best Prometheus monitoring solutions for you.
The various components of the Thanos project are as follows:
- Thanos Sidecar: The main component of Thanos that runs alongside Prometheus, reading and archiving data on the object store. Sidecar can also execute PromQL queries.
- Thanos Store: An API gateway that sits on top of historical Prometheus data in an object storage bucket.
- Thanos Query: An aggregator for query results from multiple sources, i.e. multiple Sidecar instances.
- Thanos Compact: A component that applies Prometheus 2.0's compaction procedure to block data in object store.
- Thanos Ruler: A component that evaluates the Prometheus recording and alerting rules against your choice of query API.
Let's now break down the Thanos features that we mentioned above a little further:
- Global query view: By default, Prometheus uses a functional sharding approach, thanks to the platform's scalability. However, it can sometimes be useful to access all of your data in the same API or user interface. Thanos allows you to achieve this global query view. For example, you can query and aggregate data from multiple Prometheus servers, and then display them within Grafana.
- High availability: Thanos Sidecar and Thanos Query enable high availability (HA) for your Prometheus deployment. For example, if you have multiple Prometheus instances, Thanos Query can deduplicate the metrics and merge them together.
- Historical data storage: Thanos Sidecar watches Prometheus for new blocks of persisted data and uploads them into an object storage bucket. You can store historical Prometheus data with the cloud partner of your choice, including Google Cloud Platform, Amazon S3, and Microsoft Azure.
Thanos is one of several projects that seek to add high availability and long-term historical data storage to Prometheus. Other options include Cortex by Weaveworks (also a CNCF incubating project) and VictoriaMetrics.
If you're interested in using Prometheus, but the setup and management of it would be too resource-consuming, book a demo and talk to us about how Hosted Prometheus can fit into your monitoring environment. You can also get right onto a free trial, and check it out now.
What are the Use Cases of Thanos?
Thanos can help any organization using Prometheus that needs to enable high availability and virtually unlimited historical data storage. Using Thanos makes it easier to scale Prometheus horizontally and obtain a global view of data from multiple Prometheus servers.
The Thanos project website collects various Thanos use cases that can serve as useful examples for would-be users. For example, you can combine Thanos, Prometheus, and the Kvass auto-scaling Prometheus solution in order to build a Prometheus deployment for large Kubernetes cluster monitoring.
Want to learn more about using Thanos and Prometheus? Check out our two-part blog post series:
Need help getting Prometheus and Thanos up and running? You can also check out MetricFire's hosted Prometheus solution.
How MetricFire Can Help
Want to get started with Prometheus and Thanos? We can help. MetricFire is a cloud infrastructure and application monitoring platform that makes it simple to understand your data at a glance. Our hosted Prometheus service automatically handles issues such as scaling, data storage, and support and maintenance—letting you spend more time analyzing metrics, and less time struggling with the technical details.
To learn more, check out the Prometheus posts on our blog, or get in touch with us today for a chat about your business needs and objectives. Want to get started with Prometheus right away? The MetricFire free trial lets you explore the possibilities of hosted Prometheus risk-free.