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

如何更优计算Prometheus直方图的平均处理时长?

解决Prometheus直方图平均处理时长计算的问题

你遇到的问题核心是:当5分钟窗口内没有新请求处理时,rate(process_duration_seconds_sum[5m])和rate(process_duration_seconds_count[5m])都会返回0,除法结果为0,但此时累计的sum和count其实能反映历史平均时长,没必要显示无效的0值。

推荐用以下表达式计算:

rate(process_duration_seconds_sum[5m]) / rate(process_duration_seconds_count[5m])
or
process_duration_seconds_sum / process_duration_seconds_count

逻辑说明:

  • 当5分钟窗口内有请求(rate(process_duration_seconds_count[5m])不为0),优先用这段时间内的瞬时平均处理时长(即窗口内总处理时长增量除以请求数增量),保留你想要的实时性。
  • 当窗口内没有新请求时,前面的除法会返回NaN,此时or会自动切换到累计平均处理时长(从监控启动到当前的总处理时长除以总请求数),避免图表出现突兀的直线。

额外提示:

  • 该表达式会完整保留source、size等所有标签,不影响按维度拆分图表。
  • 如果觉得累计平均不够贴合近期情况,也可以把备用表达式换成更大时间窗口的增量计算,比如increase(process_duration_seconds_sum[1h]) / increase(process_duration_seconds_count[1h]),但累计平均的方式最简洁且不会丢失历史信息。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 07:57:36