如何从PromQL(Prometheus)中的范围向量计算阈值指标

时间:2020-03-18 03:00:24

标签: prometheus promql

我定义了latency个指标,它可以按如下所示的标量进行查询:

latency{name="Controller/products/show",percentiles="95"}   0.9935112

然后,我进行了查询。输出是范围向量。

latency{name="Controller/products/show",percentiles="95"}[10m]

输出:

element:
latency{name="Controller/products/show",percentiles="95"}

value:
0.9429009 @1584497778.164
0.9150374 @1584497838.164
0.9085548 @1584497898.164
0.9006939 @1584497958.164
0.9390876 @1584498018.164
0.9593425 @1584498138.164
0.96289706 @1584498198.164
0.98113775 @1584498258.164
0.9935112 @1584498318.164

我想从向量范围值中算出0.95个值。

例如,从上述向量范围值中获取4

有人有解决方案吗?

1 个答案:

答案 0 :(得分:0)

Prometheus subquery可用于此任务:

do .. while

请注意,冒号后的count_over_time((latency{name="Controller/products/show",percentiles="95"} > 0.95)[10m:50s]) 值(在上例中为step)必须小于所选指标的刮擦间隔,因为Prometheus使用在它们之间配置了50s间隔。