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:
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
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).
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
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
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.