Grafana仪表盘变量如何配置:忽略实例非job/instance标签的变更
解决Grafana动态实例列表受额外标签影响的问题
一、修正仪表盘变量配置
要让变量只识别instance的唯一值,不受其他标签变更影响,按以下方式调整:
- 如果你的变量是Query类型:
把查询语句改成:
同时在变量的「Format」选项里选「Values」,这样变量只会显示纯label_values(node_uname_info{job="$job"}, instance)instance字符串(比如myhostname),不会带上其他标签。 - 如果你的变量是Label Values类型:
确认「Label name」设为instance,数据源选对应的Prometheus,查询条件保持node_uname_info{job="$job"}即可,它会自动提取所有唯一的instance值,和其他标签无关。
二、调整面板图例与查询逻辑
就算变量配置对了,同一个instance可能因标签变更产生多条时间序列,导致面板显示多个条目,这时候需要:
- 修改图例格式:
编辑目标面板,找到「Legend」设置,把「Legend format」改成{{instance}}(或{{instance}} - {{job}}),这样不管其他标签是什么,图例只会显示你关心的标签值。 - 用聚合函数合并序列:
在PromQL查询里添加by(instance)聚合,比如:
这样会自动忽略其他标签,把同一avg(node_cpu_seconds_total{job="$job", instance="$instance"}) by (instance)instance的所有序列合并成一个指标,彻底避免因标签变更产生多条目。
内容的提问来源于stack exchange,提问作者AntonioK
相关产品推荐
相关产品推荐

