You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何验证Prometheus指标已更新并查询距上次更新的时长

原语句无法生效的核心原因

time() - timestamp(my_metric) 仅能查询当前处于活跃状态(未被Prometheus标记为陈旧)的时间序列的最新采样间隔。Prometheus默认会对超过5分钟没有新采样点的时间序列标记为陈旧,此时直接查询my_metric会返回空结果,原语句自然不会有输出。

可行查询方案

通用方案(支持查询已停报不超过指定时长的指标)

通过范围向量拉取历史采样点,再取最新时间戳计算间隔,示例如下:

# 计算过去1小时内有过上报的指标,距离上次更新的时长(单位:秒)
time() - max_over_time(timestamp(my_metric[1h]))

你可以根据业务需要调整方括号内的时间范围:比如要排查过去24小时内的上报记录,就把[1h]改成[24h]即可,这个时间范围必须大于你需要排查的最大断更时长。

告警场景专用(判断指标是否超过指定时长未更新)

如果是要做断更告警,比如要找出超过10分钟没有上报的指标,可以用下面的语句:

# 返回所有超过10分钟未更新的指标
max_over_time(timestamp(my_metric[10m])) < time() - 600

使用时需要注意,范围向量的时长要大于指标本身的上报间隔,避免把正常长间隔上报的指标误判为断更。

内容的提问来源于stack exchange,提问作者Ali Ben Zarrouk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 19:36:03