如何从PromQL(Prometheus)中的范围向量计算超过阈值的度量

如何从PromQL(Prometheus)中的范围向量计算超过阈值的度量,prometheus,promql,Prometheus,Promql,我定义了它可以查询的延迟指标,如下所示: 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"} va

我定义了它可以查询的
延迟
指标,如下所示:

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

任何人都有解决方案吗?

可用于此任务:

count_over_time((latency{name="Controller/products/show",percentiles="95"} > 0.95)[10m:50s])

请注意,冒号后面的
step
值(
50s
在上面的示例中)必须小于所选度量的刮取间隔,因为普罗米修斯使用配置的
step
间隔在括号内的规则点处计算查询。

谢谢!我把我的Prom升级到2.7.0,并质疑你的建议。我得到了一个期望值。我将深入研究子查询。