如果30分钟内未更改,则返回度量标准的值

时间:2020-02-06 12:05:34

标签: prometheus promql

我有一个度量标准,其中包含一个正在运行的进程的已完成百分比。我正在尝试建立一个查询,如果它在x分钟内没有变化,则返回百分比的值。我尝试使用changes(progress_percent[30m])==0,但是返回的是更改的数量,而不是指标值。我想知道该过程是否停留在某个百分比上。

2 个答案:

答案 0 :(得分:1)

您可以使用AND or UNLESS二进制运算符。以AND

vector1和vector2产生一个由vector1的元素组成的向量 为此,vector2中的元素具有完全匹配的标签集。 其他元素被删除。

在您的情况下:

changes AND changes(progress_percent[30m]) == 0

仅在30分钟内没有任何变化,它才会返回change

答案 1 :(得分:0)

感谢@MichaelDoubez。最后,我使用您的线索:

0 < progress_percent < 1 AND changes(progress_percent[30m]) == 0

通过这种方式,我可以根据文档从左侧向量获取指标值:

度量标准名称和值是从左侧矢量继承的。

并确保右侧矢量没有变化。