首页/云/可观测性速查/histogram_quantile:分位计算实战
Prometheus 与采集64 条

histogram_quantile:分位计算实战

histogram_quantile(φ, bucket) 依据 le 分桶估算分位数;必须先 sum by (le)(必要时保留其他维度)聚合桶,再交给函数计算,才能得到整体分位。

可观测性速查云更新于 2026-10-12

正确与错误写法对比

正确与错误写法对比
# 正确:先聚合桶,再算整体 P95
histogram_quantile(0.95, sum by (le) (rate(http_request_duration_seconds_bucket[5m])))

# 正确:按服务分别计算
histogram_quantile(0.95, sum by (service, le) (rate(http_request_duration_seconds_bucket[5m])))

# 错误:对实例级 P95 再做平均,数学上不成立
# avg(histogram_quantile(0.95, rate(http_request_duration_seconds_bucket[5m])))
分位落进 le=+Inf 桶时返回的是外推估计;分桶设计要覆盖业务实际耗时范围。

易错点

  • 漏掉 sum by (le) 直接对每个实例独立计算,会得到多条互不相干的曲线且看不到整体
  • 分桶上界过低时大量样本落入 +Inf,分位估计会明显失真

数据来源与参考

  • Prometheus 文档 · histogram_quantile()
  • Prometheus 文档 · Histograms and summaries
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌