Calculate Max over time on sum function in Prometheus Calculate Max over time on sum function in Prometheus kubernetes kubernetes

Calculate Max over time on sum function in Prometheus


Since version 2.7 (Jan 2019), Prometheus supports sub-queries:

max_over_time( sum(node_memory_MemFree_bytes{instance=~"foobar.*"})[1d:1h] )

(metric for the past 2 days, with a resolution of 1 hour.)

Read the documentation for more informations on using recording rules: https://prometheus.io/docs/prometheus/latest/querying/examples/#subquery

However, do note the blog recommendation:

Epilogue

Though subqueries are very convenient to use in place of recording rules, using them unnecessarily has performance implications. Heavy subqueries should eventually be converted to recording rules for efficiency.

It is also not recommended to have subqueries inside a recording rule. Rather create more recording rules if you do need to use subqueries in a recording rule.

The use of recording rules is explained in brian brazil article: https://www.robustperception.io/composing-range-vector-functions-in-promql/


This isn't possible in one expression, you need to use a recording rule for the intermediate expression. See https://www.robustperception.io/composing-range-vector-functions-in-promql/