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

求助:在Grafana中可视化Prometheus Histogram及Apdex指标

没问题!我来帮你搞定在Grafana里同时展示Prometheus Histogram堆叠柱状图和Apdex指标的需求~

一、保留已实现的Histogram堆叠柱状图

既然你已经搞定了堆叠柱状图的展示,这里再快速确认下核心逻辑:你应该是用类似这样的PromQL查询来获取各bucket的速率:

sum(rate(your_histogram_bucket[5m])) by (le)

然后在Grafana中选择Stacked Bar Chart类型,把le作为分组字段——这个保持现状就好,不用调整。

二、添加Apdex指标的可视化

Apdex的核心逻辑是**(满意请求数 + 容忍请求数/2) / 总请求数**,咱们把这个逻辑转换成PromQL,再在Grafana里配置展示:

1. 先确定你的Apdex阈值

首先得明确两个关键阈值:

  • S(满意阈值):比如接口响应时间≤500ms就算满意,设为0.5
  • T(容忍阈值):一般是S的4倍,比如≤2000ms算容忍,设为2.0
    注:如果你的Histogram bucket里没有刚好匹配的le值,就用最接近的上限bucket,或者调整Prometheus里的Histogram配置添加对应bucket

2. 编写Apdex的PromQL查询

把阈值代入,组合出最终的Apdex计算语句:

# 计算Apdex值,替换成你的Histogram名称和阈值
(
  sum(rate(your_histogram_bucket{le="0.5"}[5m])) + 
  0.5 * (sum(rate(your_histogram_bucket{le="2.0"}[5m])) - sum(rate(your_histogram_bucket{le="0.5"}[5m])))
) / sum(rate(your_histogram_count[5m]))

解释下各部分:

  • sum(rate(your_histogram_bucket{le="0.5"}[5m])):满意请求数的速率
  • sum(rate(your_histogram_bucket{le="2.0"}[5m])) - sum(rate(your_histogram_bucket{le="0.5"}[5m])):容忍请求数的速率
  • sum(rate(your_histogram_count[5m])):总请求数的速率

3. 在Grafana中配置展示

有两种常用方式:

  • 同面板叠加展示:在你现有的Histogram面板里添加一个新的查询(就是上面的Apdex语句),然后把这个查询的可视化类型改成Stat或Gauge,调整面板布局(比如把Apdex放在柱状图顶部,占1/3高度),这样同屏就能看到分布和指标。
  • 单独面板展示:新建一个面板,用Stat类型,把Apdex查询放进去,设置数值格式为百分比(保留1-2位小数),用大字体显示,放在Histogram面板旁边,更醒目。
三、小优化建议
  • 保持两个可视化的时间范围和刷新频率一致,比如都用5m的rate,刷新频率设为1分钟,避免数据不同步。
  • 给两个面板加上清晰的标题,比如“接口响应时间分布(Histogram)”和“接口Apdex指标”。
  • 如果需要调整阈值,直接修改PromQL里的le值就行,非常灵活。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 08:06:34