非零值的 PromQL avg_over_time

H. *_*res 2 prometheus promql

我正在尝试从仪表指标中获取 avg_over_time 值,但我希望仅从指标的非零值(或者准确地说,大于零的值)中获取平均值。

例子:

avg_over_time(foo[2d] > 0)
Run Code Online (Sandbox Code Playgroud)

但我总是遇到解析错误: binary expression must contain only scalar and instant vector types

我尝试设置录音规则

expr: foo > 0
Run Code Online (Sandbox Code Playgroud)

但不幸的是,结果相同。

这在 PromQL 中可能吗?

Mic*_*bez 7

您可以在 Prometheus 2.7 以上版本中使用子查询:

avg_over_time((foo > 0)[2d:])
Run Code Online (Sandbox Code Playgroud)