Thanos is a set of components that can be configured to provide unlimited storage capacity. Thanos can sit seamlessly on top of Prometheus deployments.
According to the team behind the project, Thanos leverages Prometheus 2.0’s storage format to create efficient and scalable storage.
“At a certain cluster scale, problems arise that go beyond the capabilities of a vanilla Prometheus setup. How can we store petabytes of historical data in a reliable and cost-efficient way? Can we do so without sacrificing responsive query times? Can we access all our metrics from different Prometheus servers from a single query API? And can we somehow merge replicated data collected via Prometheus HA setups? We built Thanos as the solution to these questions,” software engineers Fabian Reinartz and Bartek Plotka wrote in a post.
Thanos also provides a global query view of Prometheus installations and it can merge data from Prometheus high availability pairs.
According to the team, Thanos’ philosophy borrows from the UNIX and Go philosophies. Its philosophy includes the following notions: a sub command should only do one thing and do it well, write components that work together, and make it easy to read, write, and run components.