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

Grafana如何设置完全依赖另一自定义变量的隐藏辅助变量?

实现方案

你可以通过Grafana内置的模板变量嵌套+隐藏变量的功能实现需求,完全不需要用户感知$auxvar的存在,步骤如下:

步骤1:配置隐藏变量$auxvar

新建自定义变量,参数设置如下:

  • 变量名:auxvar
  • 类型:Custom(适用于Grafana 8.0及以上版本,不需要依赖数据源)
  • 取值规则:直接写入映射逻辑即可,内容如下:
    ${{ map $var 
    "label1" "label2=\"blah2\", label3=\"blah3\""
    "label2" "label1=\"blah1\", label3=\"blah3\"" 
    "label3" "label1=\"blah1\", label2=\"blah2\"" }}
    
  • 隐藏选项:选择「Variable」,完全隐藏该变量不让用户看到
  • 刷新规则:选择「On Variable Change」,保证$var修改时$auxvar自动同步更新

步骤2:直接使用变量

后续面板的查询语句里直接引用$auxvar即可,用户只需要选择$var的取值,$auxvar会自动按照你定义的映射规则完成赋值,无需额外操作。

低版本Grafana兼容方案

如果你的Grafana版本低于8.0不支持模板映射语法,可以用对应数据源的查询语句实现映射,以Prometheus为例:
变量类型选择「Query」,查询语句写为:

label_replace(
  vector(1),
  "aux_val",
  "${{ if eq $var \"label1\" }}label2=\"blah2\", label3=\"blah3\"${{ else if eq $var \"label2\" }}label1=\"blah1\", label3=\"blah3\"${{ else if eq $var \"label3\" }}label1=\"blah1\", label2=\"blah2\"${{ end }}",
  "",
  ""
) | label_values(aux_val)

其余参数设置和上述方案一致即可。

内容的提问来源于stack exchange,提问作者mfd

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 05:06:04