Platon Mk3 – The Beginning

Platon

The Platon project aims at making Prometheus data more accessible and usable for all. By simplifying data modeling, analysis, and visualization, Platon empowers users to extract insights easily. With Platon, Prometheus data becomes a resource for everyone, driving informed decision-making and positive change. Join us in this transformative journey towards data accessibility and empowerment with Platon.

Cloud-native Monitoring

In the cloud-native environment, Prometheus has become the de-facto standard for collecting and querying data about applications. The most typical use case is applications running on Kubernetes clusters.

A standard deployment of OpenShift, one of the most prominent Kubernetes distributions comes with Prometheus and exposes more than 2000 metrics by default.

In addition to the built-in metrics, exposing custom metrics from your application to be collected from the on-cluster Prometheus deployment is quite simple to achieve.

We have all the tools and the workflows to collect all the data we need, but how can we make use of all that data?

Today, the most common approach is building dashboards using Grafana by crafting PromQL queries that make up the graphs of the dashboard. For simple metrics this is easy to achieve for someone familiar with PromQL.

However, one can quickly reach the point where the search for the right metrics, the right form of combining them with PromQL and making them visible in a understandable chart can consume a day or more of engineering time.

Understanding the load of data, and bringing it into a consumable format is not an easy task. Fast-forward a few weeks and you will have a hard time even understanding the query that past-you had crafted and added to the dashboard. Don’t dare to think of changing it.

The Mk3 Stack

Platon Mk3 is the third attempt to building the tool that automates the data transformation from the raw time series to a multi-dimensional model.

As it turned out, this is not as easy to achieve as initially thought.

In this third (and so far most promising) approach, the Cube definition comes in as a YAML file that is parsed by Platon. Platon then queries the source Prometheus deployment for all the metrics defined in the Cube YAML and combines them into a single table which is stored in a ClickHouse database. ClickHouse is a column-oriented database – a common implementation for a database used for data analytics (OLAP). While you can use any data analytics platform that supports ClickHouse, we build and test Platon using Superset, an open source analytics tool that we think is a good default choice.