首页/云/可观测性速查/changes 与 resets:变化次数与重置次数
Prometheus 与采集64 条

changes 与 resets:变化次数与重置次数

changes() 统计窗口内值发生变化的次数;resets() 统计 Counter 重置次数,用于发现进程反复重启或计数器异常。

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

changes 与 resets 是什么

changes() 统计时间窗口内指标值发生变化的次数,适合观察状态类指标翻转了多少回;resets() 统计计数器被重置的次数,通常对应进程重启或计数器异常。两者都是「事件计数」而不是「数值大小」,在排查反复重启、状态抖动这类问题时比看数值曲线更直接。

基本信息

changes窗口内值发生变化的次数,适用于各类指标
resets窗口内计数器重置的次数,仅对计数器有意义
统计窗口常用 1 小时到 1 天,需覆盖一次完整事件
典型指标进程启动时间、容器重启计数、连接状态

典型使用场景

  • 重启排查:统计计数器重置次数判断进程是否反复重启
  • 状态抖动:用变化次数衡量实例可用性翻转频率
  • 变更定位:重启时间与发布记录对照,确认是否人为触发
  • 稳定性看板:把重置次数作为服务稳定性的观察项
  • 容量异常:重置次数突增时排查是否发生了被动的资源回收

用法示例

用法示例
# 计数器在窗口内的重置次数(进程重启会导致重置)
resets(http_requests_total{job="api"}[1h])

# 判断进程是否在窗口内重启过:启动时间是否变大
process_start_time_seconds > process_start_time_seconds offset 1h

# 状态类指标值变化次数(例如实例可用性翻转)
changes(up{job="node"}[1h])

# 容器重启计数直接用累计值对比更直观
# 注意:对计量型指标使用 resets 没有意义

函数与适用对象

函数统计内容适用与不适用
changes值变化次数状态类与计数类都可用,注意采集抖动影响
resets计数器重置次数仅适用于只增计数器
(对照)rate每秒平均增长速率用于流量与速率,不反映重置
(对照)启动时间启动时刻是否变大判断是否重启过,最直观
(对照)重启计数容器累计重启次数直接反映重启,无需推导
重置次数偏高是进程稳定性的信号:与容器重启计数、发布记录对照,能快速区分是人为发布还是异常退出。
频繁重启会同时抬高速率类查询的尖峰:排查时把重置次数与速率曲线一起看,避免把重启造成的计数跳变误读成业务流量上涨。

易错点

  • 对状态类指标使用 resets 没有意义,重置概念只针对只增的计数器
  • 频繁重启会同时抬高速率类查询的尖峰,只看速率会误判为流量异常
  • 统计窗口过短会把正常的服务重启误报为异常,窗口应覆盖一次完整的发布周期
  • 采集抖动会被 changes 计入变化次数,阈值设置过严时会产生大量无意义告警

数据来源与参考

  • Prometheus 文档 · changes() / resets()
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌