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

Prometheus查询:获取字符分布区间占比并转换为柱状图

Prometheus Histogram字符分布占比计算与柱状图实现

计算各字符区间的占比百分比

Prometheus Histogram的bucket是累积计数,要拿到单一区间的实际数值,需用当前bucket的增量减去前一个bucket的增量,再除以总请求数的增量得到占比。

核心查询语句

(
  sum(increase(number_of_char_distribution_bucket{_namespace_="addautcmp",vendor_name="ADA"}[24h])) by (le)
  - ignoring(le) group_right
  (sum(increase(number_of_char_distribution_bucket{_namespace_="addautcmp",vendor_name="ADA"}[24h])) by (le) offset 1 or vector(0))
)
/
sum(increase(number_of_char_distribution_count{_namespace_="addautcmp",vendor_name="ADA"}[24h]))
* 100

逻辑拆解

  1. 获取区间实际数量:increase(...)获取24小时内每个bucket的累积增量,通过offset 1取前一个bucket的增量做减法,得到当前区间的独立数量。第一个bucket(le="1.0")无前置数据,用or vector(0)避免空值报错。
  2. 计算占比:用区间实际数量除以总count的增量,乘以100转换为百分比格式。

示例数据验证

代入你提供的GB数据计算:

  • 总count为9,1字符区间数量是1,占比≈11.11%
  • 2字符区间数量为3-1=2,占比≈22.22%
  • 3字符区间数量为5-3=2,占比≈22.22%
  • 4、5字符区间数量为0,占比0%

切换为柱状图展示

以Grafana为例操作:

  • 进入图表配置面板,将显示类型从Gauge切换为Bar chart
  • 确保查询返回多时间序列(每个le标签对应一个序列),这样每个字符区间会对应一根独立柱子
  • 图例设置为显示le标签,直观区分各区间范围

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 10:01:17