验证普罗米修斯指标已更新

Verify prometheus metric was updated

我想做类似的事情:

time() - timestamp(my_metric)

但是好像不行。有没有办法知道自最近一次指标更新以来过去了多少时间?

它在 Prometheus 2.26.2 上对我来说效果很好。

例如,这是 time() 指标:

这是时间戳 (prometheus_build_info) 指标:

最后这是 time()-timestamp(prometheus_build_info) 指标:

timestamp() 显示最后一次抓取的时间戳(如果指标本身没有时间戳)。即使指标的值没有改变,如果指标被抓取,它也被认为是更新的,只是因为它存在。因此,time() - timestamp(some_metric) 通常等于您为作业设置的抓取间隔。

如果您想知道值何时发生变化,您有两种选择:

  1. 创建时间戳(仪表)指标。每次更改要跟踪的指标值时,将时间戳指标的值设置为当前 unixtime。然后您可以使用如下查询了解自上次更新以来经过了多少时间:
    time() - my_timestamp_metric
    
  2. 使用changes()函数。它不会告诉你什么时候发生了变化但是if 在给定的时间间隔内发生了变化:
    changes(my_metric[5m])
    
    '0'表示没有变化;任何其他数字,显然,有变化。