At KubeCon Europe 2017, Weaveworks Director of Software Engineering, UI/UX, David Kaltschmidt gave a presentation titled “Grafana is Not Enough: DIY User Interfaces for Prometheus.” In this talk, he discussed the Prometheus UI.

What’s Prometheus, again?

If you’re unfamiliar, Prometheus is an open source, time series database (TSDB) that has a dimensional data model. It also has a query engine and built-in visualization. Setting up vanilla Prometheus is really easy, and it has basic dashboarding views. But usually, those aren’t enough for the monitoring and troubleshooting that end users need.

Dashboarding

David’s talk highlights how to build your own Prometheus UI to enable workflows. One of the most popular UIs used with Prometheus is Grafana. It works well and is great for dashboarding. However, one big limitation with Grafana, as pointed out by David, is its ability to troubleshoot.

Troubleshooting

Troubleshooting starts with looking at the query. That is the most essential part of troubleshooting. End users need to explore queries to see what’s going wrong. In Grafana, you can look at queries, but it is not expansive enough. Additionally, it means doing manual research.

What else do users need to do to troubleshoot effectively? They also need to compare time values, document their research, add notes, share dashboards with co-workers, and have the ability to easily hand over the incident to someone else.

The improvements

First, the Weaveworks team created a Grafana browser extension (currently only available on Google Chrome) to get out of Grafana for more effective troubleshooting. The extension enables this by injecting a link next to each Grafana panel. That link leads to Weaveworks’ own user interface for Prometheus (but can be adjusted to jump to your own monitoring solution).

The user interface makes simple use of the Prometheus API. An enhanced query field based on Facebook’s Draft.js adds syntax highlighting and suggestions for keywords, metrics, and labels–all context aware.

Watch the video below to see David’s demonstration and a deeper explanation of how he leveraged the Prometheus API to build a custom UI.


Thank you for reading our blog. We build Weave Cloud, which is a hosted add-on to your clusters. It helps you iterate faster on microservices with continuous delivery, visualization & debugging, and Prometheus monitoring to improve observability.

Try it out, join our online user group for free talks & trainings, and come and hang out with us on Slack.