如何在Grafana中将Prometheus指标表行转列展示?
问题描述
我有一个带customer、model、rev标签的Prometheus指标my_metric,示例数据如下:
customer="A", model="a", rev="1.0.13" ----------- metric value: 1 customer="A", model="ax", rev="2.1.8" ----------- metric value: 1 customer="B", model="a", rev="1.0.4" ----------- metric value: 1 customer="B", model="ax", rev="1.0.22" ----------- metric value: 1 customer="B", model="z", rev="2.0.5" ----------- metric value: 1 customer="C", model="a", rev="1.0.0" ----------- metric value: 1 customer="C", model="ax", rev="1.0.0" ----------- metric value: 1
希望在Grafana中查询后展示为如下格式的表格:
Customer a ax z A 1.0.13 2.1.8 B 1.0.4 1.0.22 2.0.5 C 1.0.0 1.0.0
我使用PromQL查询:
max(my_metric) by (customer, model, rev)
得到的表格是行式结构:
customer model rev A a 1.0.13 A ax 2.1.8 B a 1.0.4 B ax 1.0.22 B z 2.0.5 C a 1.0.0 C ax 1.0.0
需要通过Grafana的Transform操作实现行转列,求具体操作步骤。
解决方案
按照以下步骤配置Grafana Transform,实现目标表格格式:
- 添加Transform:进入Grafana面板的
Transform标签页,点击Add transform按钮。 - 清理无用字段(可选):添加
Organize fieldsTransform,移除不需要的Value字段(因为指标值均为1,无实际展示意义),仅保留customer、model、rev三个字段。 - 配置行转列核心Transform:添加
PivotTransform,按以下参数设置:- Row group by:选择
customer,作为最终表格的行分组依据(对应Customer列)。 - Column:选择
model,用该字段的取值生成表格的列名(对应a、ax、z列)。 - Value:选择
rev,将该字段的内容填充到对应行列的交叉位置。
- Row group by:选择
- 调整列顺序(可选):再次添加
Organize fieldsTransform,拖拽字段调整显示顺序,将customer放在最前列,后续按需求排列a、ax、z等列。 - 重命名列(可选):在
Organize fields中点击字段名旁的编辑图标,将customer重命名为Customer,匹配目标表格的表头样式。
完成以上配置后,即可得到你期望的行列转换后的表格。
内容的提问来源于stack exchange,提问作者sOltan
相关产品推荐
相关产品推荐

