如何查询大于值的普罗米修斯数据,但将所有数据包括在序列向量中?

问题描述

我认为这张图片说明了一切

enter image description here

我想用大于.5的值在Prometheus中查询序列,但在序列中包括较低的值,以便图表完整。 这些是量表指标,范围是0-1(小数百分比/比率) 我希望图表中的所有线条都完整。 当前查询

avg_over_time((failure_percentage > .5)[10m:])

我尝试了自我加入和分组,但是没有成功。

解决方法

据我所知,使用PromQL无法返回超过给定值的时间序列的所有数据点。

但这对于MetricsQL是可能的:

with (q = failure_percentage) q if ((q > 0.5) default 0)

可以创建WITH template function来返回时间序列中超过给定阈值的所有点:

with (
  f(q,threshold) = q if ((q > threshold) default 0)
)
f(failure_percentage,0.5)
,

在某些人的帮助下,我能够使用某种加入技巧来解决普罗米修斯松弛问题

avg_over_time(failure_percentage[10m]) * ( (failure_percentage > 0.5) ^0 )

用户viq的原始评论(有关完整内容和说明)

我不知道。...想到的一个骗术就像

 metric * ( (metric > 0.5) ^ 0)

由于要进行乘法运算,双方都需要完全匹配 标签,因此您只会得到与右侧内容匹配的结果, 正确(我认为)应该只给您符合条件的结果, 并且^ 0应该使该值始终为1,因此您开始生效 公制* 1 maaaaybe,未经测试

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...