我定义了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
。
有人有解决方案吗?
答案 0 :(得分:0)
Prometheus subquery可用于此任务:
do .. while
请注意,冒号后的count_over_time((latency{name="Controller/products/show",percentiles="95"} > 0.95)[10m:50s])
值(在上例中为step
)必须小于所选指标的刮擦间隔,因为Prometheus使用在它们之间配置了50s
间隔。