Grafana仪表盘配置:如何在Openshift持久卷表格中筛选指定列
问题:Grafana仪表盘表格显示过多标签列,如何仅保留指定列?
我正在创建一个展示OpenShift集群中持久卷列表的Grafana仪表盘,但表格显示了所有标签列(超过12列),我只需要显示node、namespace、persistentvolumeclaim、values列,不知道怎么操作。我的PromQL查询语句如下:
(kubelet_volume_stats_capacity_bytes * on (namespace, persistentvolumeclaim) group_left (storageclass, provisioner) (kube_persistentvolumeclaim_info * on (storageclass) group_left (provisioner) kube_storageclass_info{provisioner=~"(.*rbd.csi.ceph.com)|(.*cephfs.csi.ceph.com)"}))
我预期在表格编辑界面能找到「字段」设置区域,但并未发现。
解决方法
方法1:通过PromQL查询过滤标签
直接在查询末尾添加Grafana支持的keep修饰符,只保留需要的标签:
(kubelet_volume_stats_capacity_bytes * on (namespace, persistentvolumeclaim) group_left (storageclass, provisioner) (kube_persistentvolumeclaim_info * on (storageclass) group_left (provisioner) kube_storageclass_info{provisioner=~"(.*rbd.csi.ceph.com)|(.*cephfs.csi.ceph.com)"})) | keep(node, namespace, persistentvolumeclaim)
这条语句会直接过滤掉查询结果中除指定标签外的所有多余标签,表格只会显示保留的标签列和数值列。
方法2:在Grafana Table面板中通过Transform配置列
如果你没找到「字段」设置,大概率是没找对面板配置区域,操作步骤:
- 确保使用的是Table面板(而非旧版Old Table),进入面板编辑页后切换到「Transform」标签。
- 添加「Filter fields by name」转换规则,在规则中输入需要保留的列名:
node、namespace、persistentvolumeclaim、Value(注意Grafana中数值列默认名称为Value,大小写敏感)。 - 或者选择「Organize fields」转换,拖拽保留需要的字段,直接移除多余字段即可。
方法3:通过聚合查询限制标签返回
如果keep修饰符不生效,可通过sum by聚合来强制保留指定标签:
sum by (node, namespace, persistentvolumeclaim) ( kubelet_volume_stats_capacity_bytes * on (namespace, persistentvolumeclaim) group_left (storageclass, provisioner) (kube_persistentvolumeclaim_info * on (storageclass) group_left (provisioner) kube_storageclass_info{provisioner=~"(.*rbd.csi.ceph.com)|(.*cephfs.csi.ceph.com)"}))
注意:此方法会对相同标签组的数值进行聚合,若你的场景不需要聚合,优先使用前两种方法。
内容的提问来源于stack exchange,提问作者Robert123
相关产品推荐
相关产品推荐

