首页/云/可观测性速查/序列过期与 stale 标记(staleness)
Prometheus 与采集64 条

序列过期与 stale 标记(staleness)

查询默认只看近 5 分钟内的样本(lookback delta);目标移除或序列消失时写入 stale 标记,让查询立即停止返回旧值,避免用陈旧数据做判断。

可观测性速查云更新于 2026-10-13

序列过期是什么

Prometheus 的即时查询有回看窗口机制:默认只看最近 5 分钟内的样本,取窗口内最接近评估时刻的一个作为结果。当目标被移除或序列不再上报时,系统会写入 stale 标记,让查询立即停止返回旧值,避免用陈旧数据做判断。理解这两点,才能解释「目标已经下线但图还在」与「曲线断了一段」这类常见现象。

基本信息

回看窗口默认 5 分钟,由 --query.lookback-delta 控制
stale 标记目标消失、序列不再上报、配置变更删除序列时写入
影响范围即时查询取样本的方式,与存储保留期无关
相关参数--query.lookback-delta
适用版本Prometheus 2.x

典型使用场景

  • 解释曲线断档:目标短时不可达后曲线中断,属回看窗口内查不到更早样本的正常表现
  • 数据新鲜度检查:用当前时间减去样本时间戳,判断指标是否还在更新
  • 告警防抖:目标短暂抖动时不要用瞬时值为 0 直接告警
  • 参数调优:抓取间隔放大后同步评估回看窗口,避免取到过期样本
  • 排查区分:分清「序列消失」与「数值归零」,两者处理方向完全不同

使用要点

  • 回看窗口只影响查询取哪个样本,不等同于数据保留期
  • 目标被移除后看到的断点属于预期行为,不是采集故障
  • 序列结束会立刻生效,而不再上报需要等抓取判定,两者时间尺度不同
  • 用数据新鲜度做成看板,可以直接暴露停止上报的数据源
  • 调整抓取间隔与回看窗口要成对进行,并同步检查告警的 for 时长

查看数据新鲜度

查看数据新鲜度
# 距离上次采样已经过去了多少秒
time() - timestamp(node_load1)

# 接近抓取间隔属正常,持续变大说明该序列已停止上报
# 断点恢复后的曲线中断属正常:回看窗口内查不到更早样本就不再返回

概念对照

概念含义常见误解
回看窗口即时查询回溯取样本的时间误当成数据保留期
stale 标记序列结束的标识误当成故障信号
保留期TSDB 实际保存时长与回看窗口混为一谈
数据新鲜度当前时间减样本时间戳忽略不加以监控
抓取间隔多久采集一次认为与回看窗口无关
把抓取间隔放大后要同步评估回看窗口,否则即时查询容易取到已过期的样本值,让人误以为服务仍在正常上报。

易错点

  • 5 分钟回看不等于数据只存 5 分钟:它只影响查询取哪个样本,与保留期无关
  • 目标短暂抖动时用瞬时值为 0 直接告警会持续误报,for 时长应大于一次抓取超时的量级
  • 把曲线中断一律当成采集故障,忽略了回看窗口与序列结束的正常行为
  • 调整抓取间隔后不同步评估回看窗口,会取到过期样本导致判断偏差

数据来源与参考

  • Prometheus 文档 · staleness and lookback delta
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌