Grafana中带标签的指标如何生成堆叠百分比时序分布图表
带标签counter指标的堆叠百分比时序图实现方法
第一步:修正PromQL查询
你原有查询的核心问题是语法错误:rate()函数要求时间范围参数必须紧跟指标选择器、放在同一对括号内,你错误地将[1m]写在了rate()的闭合括号外。
正确的查询语句如下:
100 * sum(rate(fruits_total[1m])) by (fruit) / sum(rate(fruits_total[1m]))
语句逻辑说明:
- 内层
rate(fruits_total[1m])计算每一个fruit标签对应counter指标的1分钟平均增长率 - 左侧
sum(...) by (fruit)按水果标签分组,聚合得到每个水果的总增长率 - 右侧无分组的
sum(rate(fruits_total[1m]))计算所有水果的全局总增长率 - 两者相乘100后得到单个水果占总增量的百分比
如果你需要展示的是累计总计数的占比(而非单位时间增量的占比),可以去掉rate直接用以下语句:
100 * sum(fruits_total) by (fruit) / sum(fruits_total)
第二步:Grafana面板配置
完成查询后按以下配置调整面板,即可得到堆叠百分比效果:
- 面板类型选择「时间序列」(旧版本Grafana可选择「Graph」面板)
- 进入「系列」配置页,找到「叠加(Stack)」选项,选择「100% 叠加」
- 进入「轴」配置页,将Y轴单位设置为「百分比(0-100)」,数值展示更直观
- 可选配置:在图例配置中开启「当前值」展示,可直接查看最新时间点各水果的占比数值
内容的提问来源于stack exchange,提问作者xyz
相关产品推荐
相关产品推荐

