5+1 reasons to extend your Prometheus with M3

Prometheus is a great open source monitoring and alerting application for collecting real-time metrics in a time series database. But not even Prometheus is perfect for every use case. In this article, we'll explore some ways that Prometheus struggles, and propose an extended solution. Dive in!

30 April 2021
Auri PosoTechnical Copywriter at Aiven

Once upon a time, you went with Prometheus for your metrics solution, and odds are that you lived happily ever after. After all, Prometheus offers a multi-dimensional data model, simple operations and a powerful query language, PromQL. This makes it ideal for keeping tabs on huge amounts of data in a cloud-based environment. Maybe you're also using Kubernetes, which Prometheus also integrates with very well. And it's also a fully independent, open source project that nevertheless has a robust following and commercial support options.

So, if Prometheus is so great, why are we saying you should invest in the M3 platform as well? Wouldn't that be like finding your Prince or Princess Charming and then marrying their sister, too? Maybe not quite! We'll give you 5 big reasons to adopt M3, and one more good one to seal the deal.

1. Long-term data storage

Prometheus is meant to be a temporary data store, its core use being passing data on to an analysis engine. It's essientially just a local on-disk database, not clustered or replicated. This makes it unsuitable for scalable long-term storage. If you want to store your data for longer, you have to look for a proper storage backend solution. M3, pretty much the best of breed time series database, was created to integrate with Prometheus with no hoopla.

2. Faster reporting

Prometheus's aggregation capabilities have some gaps that require diligence and the occasional workaround, like running queries on a range selection (where you have to remember to set up matching recording rules). And Prometheus doesn't even do downsampling. After all, why would you want it for data you only store fleetingly?

The M3 Aggregator, though, is based on dynamic rules and provides stream-based downsampling. Metrics can be stored at various customizable resolutions. This makes your data less granular and easier for analysis and reporting applications to process.

3. Comprehensive query results

Running M3 on top of Prometheus allows you to plug several Prometheus servers into one M3 platform, with the M3 Coordinator providing a global query and storage interface on top of M3DB clusters. That allows you to query several data centers at once. Thus with M3, you get better across the board visibility and observability across multiple Prometheus instances.

4. High availability from the ground up

You really need highly available monitoring for your business-critical apps. After all, you don't want to end up in a situation where your system is down and you're not getting the message because also your monitoring isn't working.

Prometheus isn't highly available on its own, but M3 was designed for high availability. Its default configuration, crafted for metrics and observability, is specifically oriented to high performance and high availability (although it can easily be adjusted to prioritise consistency and durability). This makes a good case for patching up Prometheus's HA capabilities with M3.

5. Scale up without overloading

It's perfectly possible to overload your Prometheus server. Heavy scraping loads combined with heavy ad hoc query loads can bring the server down, and isolating these from each other is not possible.

With M3, ad hoc queries can be isolated from scraping activities. This reduces the load on the system and, together with the out-of-the-box HA, virtually guarantees that overloading your servers isn't going to happen.

And then that +1: You can get your M3 from Aiven - fully managed!

This is of course the best of all possible reasons! You don't need to be an expert at setting up and managing M3 in order to enjoy all the benefits. Aiven can be your lucky crab sidekick and run all of that for you, as a fully managed cloud solution. All you have to do is sign up, kick back and watch Aiven for M3 go into action. (We promise not to burst out in song, though. That's not really our forte.)

For more detailed info about Aiven for M3, check out our blog post Introduction to M3, too.

Wrapping up

Developed as an extension for Prometheus, M3 is the best and easiest choice for a time series database to extend an existing Prometheus system. And developed with you in mind, Aiven for M3 is by far the best and easiest choice to implement it and live happily ever after.

Not using Aiven services yet? Sign up now for your free trial at https://console.aiven.io/signup!

In the meantime, make sure you follow our changelog and blog RSS feeds or our LinkedIn and Twitter accounts to stay up-to-date with product and feature-related news.

m3integrationsservicestime series databases

Start your free 30 day trial

Test the whole platform for 30 days with no ifs, ands, or buts.

Aiven logo

Let‘s connect

Apache Kafka, Apache Kafka Connect, Apache Kafka MirrorMaker 2, M3, M3 Aggregator, Apache Cassandra, Elasticsearch, PostgreSQL, MySQL, Redis, InfluxDB, Grafana are trademarks and property of their respective owners. All product and service names used in this website are for identification purposes only and do not imply endorsement.