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

如何用PromQL计算Grafana热力图中非连续分布的合并p95分位数

合并非连续直方图分布计算p95的方法

核心思路是分别聚合目标时间段的直方图桶数据,再将桶数据合并后计算分位数,具体操作步骤如下:

  1. 单独聚合每个目标时间段的直方图
    使用sum_over_time()函数分别对两个非连续时间段的直方图桶求和,得到每个时间段的完整直方图分布:
# 第一个时间段的直方图聚合(替换为你的目标时间范围,示例为1小时前到30分钟前)
sum_over_time(your_histogram_metric{labels}[1h offset 30m])
# 第二个时间段的直方图聚合(示例为30分钟前到当前时间)
sum_over_time(your_histogram_metric{labels}[30m])

通过offset调整时间范围,确保两个时间段不重叠且覆盖你圈出的目标分布。

  1. 合并两个直方图的桶数据
    用+运算符将两个聚合后的直方图相加,PromQL会自动按桶标签(le)匹配并累加对应桶的样本数:
sum_over_time(your_histogram_metric{labels}[1h offset 30m]) + sum_over_time(your_histogram_metric{labels}[30m])
  1. 计算合并后的p95分位数
    将合并后的直方图传入histogram_quantile()函数,即可得到两个非连续分布的合并p95:
histogram_quantile(0.95, sum_over_time(your_histogram_metric{labels}[1h offset 30m]) + sum_over_time(your_histogram_metric{labels}[30m]))

通用扩展说明

  • 若需合并更多非连续时间段,只需继续添加sum_over_time()的结果并用+连接即可
  • 确保所有sum_over_time()的时间范围无重叠,且完整覆盖所有目标分布
  • 若直方图带有多组标签,需保证所有聚合的标签匹配一致,避免出现桶不匹配导致合并失败的情况

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 18:22:07