普罗米修斯:如何计算单个价值随时间的比例

时间:2017-07-20 11:44:22

标签: prometheus

我想计算某个时间范围内给定指标非零的百分比时间。我知道我可以使用

获取该时间范围内的值数

count_over_time(my_metric[1m])

但我想要的是

count_over_time(my_metric[1m] != 0) / count_over_time(my_metric)

我无法做到这一点,因为binary expression must contain only scalar and instant vector types

有没有办法做我正在尝试的事情?

1 个答案:

答案 0 :(得分:3)

如果值只能是0或1,那么您可以使用avg_over_time

如果它可以有其他值,则需要通过录制规则将其转换为0或1:

my_metric_nonzero = my_metric != bool 0

然后你可以avg_over_time(my_metric[1m])

另见https://www.robustperception.io/composing-range-vector-functions-in-promql/