DEV Community

Cover image for A Developer's First Impression of M3DB
Lorna Jane Mitchell
Lorna Jane Mitchell

Posted on • Originally published at aiven.io

A Developer's First Impression of M3DB

One of the newest products on the Aiven platform is our M3 offering. As a distributed time series database it's ideal for storing the ever-growing number of data points that we collect in and about modern applications.

What immediately strikes me about M3 is how it is designed to fit in alongside the other tools in a likely architecture. It has interfaces to match the ones we already know and love from Prometheus and InfluxDB. The integration with Grafana is also seamless.

It's as if M3 is designed to painlessly upgrade a single component of our existing data platform.

M3 speaks Prometheus

Prometheus is commonly used for server monitoring. If your platform is already sending data to Prometheus, then changing the data store to M3 will be painless. A server agent such as Telegraf can send data to M3 via its Prometheus write endpoints just as easily as it sends data to Prometheus itself.

There's nothing shiny here, because the intentional reuse of protocols does not make good headlines. It does however make excellent integrations and successful migration projects, and I know which I prefer from the tools I choose!

As our platforms scale and grow, so do our monitoring data requirements. Since we outgrew our previous solution, Aiven now uses M3 in an observability setup. We think this platform could be very useful for other organisations on a similar journey.

M3 speaks InfluxDB

Whether you are replacing an existing InfluxDB for your time series data or metrics, or adopting M3 and making use of one of the existing tools that integrates with InfluxDB, M3 is here for you. The compatible wire protocol enables both seamless migrations of existing platforms and easy adoption of M3 as a time series database platform in a new application.

InfluxDB is a mature platform and there are several libraries and integrations available. Since those will also work for M3, the learning curve for pushing data into the application is pretty flat. I found this makes M3 with all its incredible features and scalability a surprisingly approachable offering.

Grafanical ease of integration

The thing about time series data is that there's rather a lot of it. That's even more true if you're building at a scale that needs M3. Luckily, the Aiven platform makes it very simple to link the M3 service with a Grafana dashboard using the Prometheus read API that M3 has. This brings your data into Grafana, alongside any other data sources that you're already using, and lets you start visualising what's going on in your application.

M3 builds on all these existing integrations and adds some magical scalability into the mix. This makes M3 a very exciting prospect for developers, and it's a platform I'll be building on again in future.

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

Top comments (1)

Collapse
 
valyala profile image
Aliaksandr Valialkin

Take a look also at VictoriaMetrics. It also integrates seamlessly with Grafana and Prometheus ecosystem. Additionally, it provides various integrations with other popular monitoring solutions such as Telegraf, InfluxDB, Graphite, OpenTSDB and DataDog.

VictoriaMetrics also provides open-source cluster version, which scales horizontally to many nodes - see docs.victoriametrics.com/Cluster-V...