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

Grafana GQL:如何用node_uname_info的node_name作为K8s节点带宽图例?

在Grafana中用Kubernetes节点名称作为带宽监控图例的实现方法

完全可行,通过PromQL的标签关联语法就能实现,具体步骤如下:

1. 修改PromQL查询,关联节点名称标签

使用group_left将node_uname_info中的node_name标签关联到带宽指标上,最终查询语句如下:

sum by(instance, node_name) (
  irate(node_network_receive_bytes_total[$interval:$resolution])
  * on(instance) group_left(node_name) node_uname_info
)

逻辑说明:

  • node_uname_info是Node Exporter采集的节点信息指标,自带instance(节点IP)和node_name标签
  • on(instance) group_left(node_name)表示以instance标签为关联键,将node_uname_info的node_name标签附加到带宽指标结果中
  • 最后按instance和node_name聚合,确保结果包含节点名称标签

2. 在Grafana中配置图例显示

进入面板的Legend设置项,将图例格式设置为:

{{node_name}}

如果需要同时显示IP作为补充,可设置为:

{{node_name}} ({{instance}})

这样图例就会直接显示Kubernetes节点名称,而非原始的IP地址。

3. 处理instance标签格式不一致的情况

如果你的node_network_receive_bytes_total和node_uname_info的instance标签格式不统一(比如一个带端口IP:9100,一个只带IP),可以用label_replace统一标签格式:

示例:去除带宽指标instance标签的端口

sum by(instance, node_name) (
  label_replace(irate(node_network_receive_bytes_total[$interval:$resolution]), "instance", "$1", "instance", "(.*):.*")
  * on(instance) group_left(node_name) node_uname_info
)

示例:给节点信息指标的instance标签添加端口

sum by(instance, node_name) (
  irate(node_network_receive_bytes_total[$interval:$resolution])
  * on(instance) group_left(node_name) 
    label_replace(node_uname_info, "instance", "$1:9100", "instance", "(.*)")
)

内容的提问来源于stack exchange,提问作者Vasek - Tom C.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 18:10:09