Showcasing PromLens 0.10.0

October 19, 2020 by Julius Volz

Today we are happy to announce version 0.10.0 of PromLens. PromLens is the ultimate power tool for PromQL that helps you build, analyze, explain, and visualize your queries. In case you are unfamiliar with it, this is what it looks like:

PromLens screenshot

Here is a summary of the most important changes relative to version 0.9.0 that help you take your PromQL productivity to the next level:

PromQL expression editing on steroids

Starting with this release, we feel that PromLens offers the world's best PromQL text editing experience, with even more exhaustive and informative autocompletion than before, as well as better inline error detection and display. Rather than relying on rough heuristics and regular expressions for making sense of the typed input, the editor implements a full PromQL parser with support for partial expressions and error recovery, which enables deep and accurate code intelligence.

Note: The (unstyled) core of this editing experience was created as a collaboration between Augustin Husson (Amadeus) and Julius Volz (PromLabs) and is available as an open-source PromQL extension for the CodeMirror Next editor. Special thanks to Augustin for the productive collaboration!

Autocompletion

The text editor now autocompletes PromQL language constructs much more precisely and exhaustively, while providing additional new hints about completion suggestions.

General autocompletion demo

Metric name suggestions now include the metric type and documentation string:

Metric name autocompletion

Please note that showing metric name metadata requires your PromQL datasource to support Prometheus's metric metadata API.

Snippets include the intended meaning of the snippet operation:

Snippet autocompletion

Functions, aggregation operators, and modifiers each show a brief description of their meaning:

Function autocompletion

Keyword autocompletion

We also optimized the autocompletion code to work more efficiently and not block the browser for potentially long periods of time when processing large result sets for label names and values.

Linting

The in-line linter now reports all PromQL errors that can be detected during parse time. Some examples of linter errors showing you the exact position and nature of problems are:

Passing the wrong argument type to a function:

Wrong argument type

Trying to use a set operator with a scalar operand:

Scalar set operator operand

Including the same label name in both an on() and group_left() clause at once:

Double label usage

The linter not only saves you time and frustration by pointing out errors earlier in the query building process, it also shows you exactly where the errors are happening in the PromQL expression.

Configuring the editor

Although we expect most people to love the advanced editor functionality that PromLens offers, we know that some users prefer a minimal experience without syntax highlighting, autocompletion, and/or inline linting. Thus, we made all of these features configurable:

Editor settings

These settings are saved in the browser's local storage, so that each user can choose the editor configuration they prefer.

New metrics explorer

While autocomplete is great for quickly finding a metric name, it still requires you to already know at least part of the metric you are looking for. The autocomplete dropdown is also just not very convenient for getting a more comprehensive view of all available metric names.

To make the metrics exploration process easier, PromLens 0.10.0 adds a new metrics explorer that shows all metric names, along with their type and documentation string. It also allows fuzzy-filtering of the metric names:

Metrics explorer

You can use the metrics explorer to either copy one of the metric names, or to insert it at the last cursor position into your expression input.

The current iteration of the metrics explorer is still simple, but we plan on adding more advanced exploration features soon, such as drilling down and grouping by specific labels. Please give us feedback if you have specific wishes around this!

Linking directly to a query

Sometimes it's convenient to be able to link directly to a specific PromQL query without creating a persisted shared page link first. You can now do this by appending a q query parameter to the PromLens URL. For example, https://demo.promlens.com/?q=up directly displays and executes the query up. For more complex shared pages, we still recommend creating a full shared page link, as this allows more control over the tree view state, as well as the selected visualization methods.

Cleaner tree view

The tree view got a minor cleanup to hopefully be easier to read and understand.

Tree nodes now don't include placeholder indicators for child nodes anymore, since the child nodes are shown in the tree itself anyway:

Cleaner tree view

Edit buttons are now always shown for placeholder nodes, not only when hovering over them. The only purpose of placeholders is to fill them out, so their editability should be pointed out more clearly:

Placeholder buttons

The edit buttons now also have text labels to make their meaning clearer.

Become more productive with PromLens today!

We are continuously improving PromLens and hope that you will enjoy these new features. You can see the full list of changes in the PromLens 0.10.0 changelog. Check out PromLens today, deploy the free preview version, get the full on-premise version, and report any issues or feature requests you may encounter.

Happy monitoring!


October 19, 2020 by Julius Volz

Tags: promlens, promql