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

如何在Prometheus中正确展示15秒频率的后端请求计数数据?

解决Prometheus 15秒区间increase图表断裂归零问题

问题原因

核心问题出在Prometheus increase函数的工作逻辑上:它需要指定时间区间内至少有两个样本数据,才能计算counter的增量。如果你的Prometheus抓取间隔(scrape_interval)≥15秒,那么backend_counter_total[15s]区间里只会包含1个样本,increase无法计算有效增量,就会返回0,导致图表每次步进后归零、出现断裂。

而1分钟区间能正常工作,是因为1分钟内至少有2个以上样本(假设抓取间隔≤30秒),满足increase的计算条件。

解决方案

1. 调整Prometheus抓取间隔(最直接有效)

把Prometheus的抓取间隔设置为小于15秒,比如10秒。这样15秒区间内至少会有2个样本,increase(backend_counter_total[15s])就能正确计算这段时间的请求增量。

修改Prometheus配置文件中的scrape_interval:

scrape_configs:
  - job_name: 'backend_job'
    scrape_interval: 10s  # 设置为小于15秒的值
    # 其他原有配置(如targets等)保持不变

重启Prometheus后等待数据更新,图表即可恢复平滑。

2. 改用rate函数估算(无法调整抓取间隔时使用)

如果不能修改抓取间隔,可以用rate函数计算每秒请求速率,再乘以15得到15秒内的请求总量:

rate(backend_counter_total[15s]) * 15

rate函数会对区间内的样本做线性插值,即使区间内只有1个样本,也会基于前后样本数据估算速率,避免出现归零情况。不过这种方式属于估算值,精度略低于increase在样本充足时的结果。

3. 确认客户端请求与后端统计的稳定性

检查前端setInterval是否每15秒稳定发送请求,有没有出现请求丢失、延迟的情况;同时确认后端backend_counter_total指标是否在每次收到请求时都正确递增,排除业务代码层面的统计遗漏。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 12:03:15