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

Prometheus query与query_range的sum_over_time结果不一致问题排查

Prometheus查询结果差异原因分析

核心问题点

  • 标签拼写错误:第二个查询中的abel_id应为label_id,这会导致无法匹配到目标指标metric_name{label_id="20000"},大部分结果会被or vector(0)替换为0,直接造成总和严重偏差。
  • 时间范围不一致:
    • 第一个查询的时间范围是1727675266 - 49666s = 1727625600到1727675266,仅覆盖当天前49666秒的数据。
    • 第二个查询的时间范围是1727625600到1727712000(次日0点),包含了第一个查询未覆盖的后续时间段数据,这部分额外数据会让第二个查询的总和偏大。
  • 窗口覆盖与对齐差异:
    • 第一个查询是对连续49666秒内的所有1秒样本直接求和,无窗口分割。
    • 第二个查询通过step=15s分割为多个15秒窗口,每个窗口计算sum_over_time后累加。如果49666不是15的整数倍,第一个查询的最后一段不足15秒的数据,在第二个查询中可能出现重复计算或遗漏,导致样本统计偏差。
  • or vector(0)的额外干扰:当某个15秒窗口无有效样本时,第二个查询会补充0值并计入总和,但第一个查询中无样本的时间段不会贡献任何数值,这也会导致两者总和出现差异。

验证修正建议

  1. 修正第二个查询的标签拼写错误,将abel_id改为label_id。
  2. 对齐两个查询的时间范围:将第二个查询的end参数改为1727675266,确保和第一个查询的结束时间一致。
  3. 去掉or vector(0),避免无数据窗口的0值干扰总和计算。
  4. 确认49666s是否等于1727675266 - 1727625600,确保第一个查询的时间跨度完全覆盖目标时间段。

内容的提问来源于stack exchange,提问作者lwin

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 22:17:37