Reliable Insights

A blog on monitoring, scale and operational sanity

New Features in Prometheus 1.1.0

Following on from 1.0.0, Prometheus 1.1.0 has been released. Let’s have a look at the main improvements!

PromQL

As usual there’s a number of new features in PromQL. As we’re still in 1.0, there’s no breaking changes of course.

A plethora of date related functions have been added: days_in_month, day_of_month, day_of_week, hour, month and year. These all take a vector and return the respective outputs per UTC. There’s also a default, so when no arguments are passed they’ll use the current time and return a single no-label time series. For example year() would currently return {}: 2016.

There’s the new quantile aggregator and quantile_over_time function. The former lets you do quantiles across time series (e.g. what’s the 90th percentile memory usage of a job), and the latter across time (e.g. what’s the 75th percentile value of this gauge over the past hour).

Relatedly there’s stddev_over_time and stdvar_over_time, rounding out their aggregator versions and allowing you to see how varied a time series is over time.

The final PromQL change is the idelta function. This isn’t of much use until scrape time rule evaluation is implemented, when it will allow for certain very advanced use cases (have you ever wanted to implement your own version of rate?).

Other Changes

There’s some more notable changes. The big one is that there’s finally progress on long term storage, with an experimental generic write path being added!

It’s now possible to relabel alerts before they are sent to the alertmanager, making it possible to drop alerts that aren’t needed at that level and to ensure alerts from both Prometheis in a HA pair are de-duplicated if they have slightly different external_labels.

A heuristic has been added to improve the index lookup phase of queries, which should help tide us over until a full solution is in place. There is now a Remove Graph option on the expression browser. Kubernetes SD exposes more metadata. The templating language now has upper and lower casing functions.

There’s also a variety of minor other changes, check out the release notes.

Brian BrazilNew Features in Prometheus 1.1.0
Share this post

Related Posts