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

Prometheus query_range时间范围设置及域名流量求和问题求助

问题解决:Prometheus查询错误与increase函数结果疑问

1. 解决"exceeded maximum resolution of 11,000 points per timeseries"错误

你的查询时间范围为12天(2024-10-01至2024-10-13),step设为60秒,计算后总点数为(13-1)*24*3600 / 60 = 17280,远超Prometheus默认的单时间序列最大点数限制(11000)。

解决方法:

  • 增大step值:将step改为300秒(5分钟),总点数降至3456,符合限制。修改后的请求参数示例:
    params={
        'query': 'sum(increase(libvirt_domain_interface_stats_receive_bytes_total[2h]))',
        'start': '2024-10-01T00:00:00.000Z',
        'end':   '2024-10-13T00:00:00.000Z',
        'step':  '300'  # 调整为5分钟步长
    }
    
  • 分批次查询:将12天拆分为多个小时间范围(如每次3天),分别查询后合并结果。
  • 调整Prometheus配置(不推荐):修改prometheus.yml中的query.max-samples参数提高限制,但会增加服务器内存与CPU负载。

2. 为什么increase返回多个值而非单一总和

你混淆了query_range与queryAPI的作用:

  • query_range的作用是按指定step返回时间序列上的连续数据点,每个点对应该时间点往前2小时的流量增量(因你使用increase(metric[2h])),因此会得到多个值。
  • 若要获取整个时间范围的总流量总和,需使用queryAPI(而非query_range),查询语句改为统计整个12天的增量:
response_tmp = requests.get(
    'http://prom.mysite.com:9091/api/v1/query',  # 注意是query接口
    params={
        'query': 'sum(increase(libvirt_domain_interface_stats_receive_bytes_total[12d]))',
        'time': '2024-10-13T00:00:00.000Z'  # 指定查询的结束时间点
    },
    auth=('admin', 'myStrongAdminPassWord')
)

此请求返回的结果为单一总和值,对应2024-10-01至2024-10-13的总接收流量。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 07:05:09