Grafana中按标签分组展示Prometheus直方图响应延迟的方案
Grafana 10.x 按endpoint标签分组展示响应延迟直方图方案
针对你的需求,直接用Grafana自带的Histogram面板(或Bar Chart面板)就能实现按endpoint标签分组的多直方图展示,以下是具体方案和示例:
核心方案步骤
1. 替换面板类型
删除当前的Bar Gauge面板,新增一个Histogram面板(更适配延迟这类分布型指标);如果需要并列对比的柱状图,也可以选择Bar Chart面板。
2. 编写分组查询的PromQL
确保查询语句保留endpoint和le(延迟区间)标签,示例如下:
# 按endpoint分组,计算1分钟内各延迟区间的请求速率总和 sum(rate(response_latency_bucket{job="你的业务job名称"}[1m])) by (le, endpoint)
如果需要展示分位数对应的延迟分布,也可以用分位数查询(Histogram面板同样支持):
histogram_quantile(0.95, sum(rate(response_latency_bucket{job="你的业务job名称"}[1m])) by (le, endpoint))
3. 配置面板分组规则
以Histogram面板为例:
- 进入Panel options标签页,找到Group by下拉框,选择
endpoint标签,面板会自动按不同endpoint生成独立的直方图分组。 - 调整Orientation为
Vertical(垂直布局),便于横向对比不同endpoint的延迟分布。
4. 优化可读性设置
- 轴配置:在Axes标签页,给X轴设置标签为「响应延迟区间」,单位选择对应时间单位(如ms);Y轴设置标签为「请求占比」或「请求数」,根据需求选择Y轴类型(Percent/Count)。
- 颜色区分:在Color标签页,选择「By series」并关联
endpoint标签,让不同endpoint的直方图用不同颜色展示。 - 图例与Tooltip:开启Legend显示,设置位置为底部;开启Tooltip的详细数据展示,方便查看每个延迟区间的具体数值。
Bar Chart面板替代方案(并列柱状对比)
如果更偏好并列柱状图展示:
- 新增Bar Chart面板,使用同样的PromQL查询。
- 在Panel options中设置Group by为
endpoint,Stacking选择Off(不堆叠)。 - 配置X轴为
le标签,Y轴为请求数/占比,即可实现不同endpoint延迟分布的并列对比。
内容的提问来源于stack exchange,提问作者greengold
相关产品推荐
相关产品推荐

