问题描述
我认为这张图片说明了一切
我想用大于.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,未经测试