首页/云/可观测性速查/count_over_time:窗口内的样本数
Prometheus 与采集64 条

count_over_time:窗口内的样本数

count_over_time 统计窗口内实际存在的样本数量,用于判断数据完整性与采样间隙;样本数偏少会让 rate 类查询的误差放大。

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

count_over_time 是什么

count_over_time 是 PromQL 的区间函数,接收一个区间向量(如 up[5m]),返回该窗口内实际存在的样本条数。它数的是采样点个数而不是数值大小,因此在抓取间隔固定的前提下,样本数大致等于窗口长度除以抓取间隔,常用来判断目标是否在稳定上报、rate 类查询是否还有足够样本可用。Prometheus 2.x 全系列支持,对计数器与仪表类指标一视同仁。

基本信息

语法count_over_time(<区间向量>)
输入up{job="node"}[5m] 这类区间向量
返回即时向量,值为窗口内样本条数
适用版本Prometheus 2.x 全系列
权限要求只读查询,无特殊权限

典型使用场景

  • 数据完整性核查:15s 抓取间隔下 5 分钟窗口理论约 20 个样本,明显偏少说明存在丢点
  • 抓取超时排查:Targets 页显示某目标耗时贴近 timeout 时,用它量化丢点严重程度
  • rate 结果可信度判断:样本太少时 rate/irate 误差放大,先确认样本密度再解读速率
  • 采集链路断流检测:某指标长期零样本时用告警规则捕获,早于业务侧感知
  • 参数变更验证:缩短抓取间隔后确认实际落库样本量是否随之上升

数据完整性检查

数据完整性检查
# 15s 抓取间隔下,5 分钟窗口理论样本数约 20
count_over_time(up{job="node"}[5m])

# 样本明显不足的目标(疑似抓取失败或频繁丢点)
count_over_time(up{job="node"}[5m]) < 15

# 与抓取耗时一起看:耗时贴近 timeout 的目标最容易丢点
count_over_time(up{job="node"}[5m]) < 15 and scrape_duration_seconds{job="node"} > 8

# 统计窗口内「满足条件的采样点个数」(子查询写法)
count_over_time((up{job="nginx"} == 0)[1h:1m])

样本数与诊断

观测结果含义常见原因
样本数接近理论值抓取稳定正常状态,rate 结果可信
样本数明显偏少存在丢点目标超时、网络抖动、采集端过载
样本数为零窗口内没有样本服务停止、端口不通、目标被移除
样本数忽高忽低抓取不稳定同机多实例争抢、DNS 解析慢
想统计「窗口里有多少个采样点满足条件」要用子查询写法 count_over_time((up == 0)[1h:1m]),得到的是采样点个数,而不是故障持续秒数;两者量级不同,别混用。
样本数下降先区分两种情况:抓取失败时 up 仍存在但样本稀疏;目标被移除时序列提前结束并写入 stale 标记。前者查网络与超时,后者查配置变更。

易错点

  • count_over_time 数的是样本条数,不是数值大小;把它当业务计数使用会得到完全错误的量级
  • stale 标记会让序列在窗口内提前结束,样本数下降时要先分清是抓取失败还是目标被移除
  • 把抓取间隔缩短一半会线性放大样本数与存储占用,调参前先估算保留期内的空间成本
  • 60s 抓取间隔下用 5m 窗口只有 5 个样本,rate 抖动明显;窗口至少要覆盖 4 个以上样本才有参考价值

数据来源与参考

  • Prometheus 文档 · count_over_time()
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌