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

如何在Grafana中手动定义包含变量集合的切换变量?

在Grafana中实现带子变量的切换变量

可以实现,以下是两种手动定义的可行方案:

方案一:JSON格式主变量+字段引用(推荐)

这种方式可以直接通过类似${region:json}.ip的形式引用子变量,完全匹配你的需求:

  1. 创建主变量region

    • 进入仪表盘设置 → 变量 → 新建变量
    • 类型选择「Custom」
    • 在「选项」区域添加以下三组标签和值:
      • 标签:Europe,值:{"ip":"europe_ip","port":"europe_port","service_name":"europe_service_name"}
      • 标签:America,值:{"ip":"america_ip","port":"america_host","service_name":"america_service_name"}
      • 标签:Asia,值:{"ip":"asia_ip","port":"asia_host","service_name":"asia_service_name"}
    • 保存变量
  2. 引用子变量
    在面板的查询或文本中,通过Grafana的JSON格式化器解析子字段:

    • 引用IP:${region:json}.ip
    • 引用端口:${region:json}.port
    • 引用服务名:${region:json}.service_name

方案二:主变量+依赖子变量

如果觉得JSON格式维护麻烦,可以为每个子属性单独创建依赖变量:

  1. 创建主变量region

    • 类型选「Custom」,选项直接添加Europe、America、Asia三个值,标签和值保持一致
  2. 创建子变量region_ip

    • 新建变量,类型选「Custom」
    • 在「值」的输入框中,使用Grafana的条件表达式:
      ${region} == 'Europe' ? 'europe_ip' : ${region} == 'America' ? 'america_ip' : 'asia_ip'
      
    • 勾选「隐藏」(如果不需要单独显示这个变量)
  3. 同理创建其他子变量

    • region_port的条件表达式:
      ${region} == 'Europe' ? 'europe_port' : ${region} == 'America' ? 'america_host' : 'asia_host'
      
    • region_service_name的条件表达式:
      ${region} == 'Europe' ? 'europe_service_name' : ${region} == 'America' ? 'america_service_name' : 'asia_service_name'
      
  4. 引用子变量
    直接使用$region_ip、$region_service_name这类变量名即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 21:28:13