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

Grafana是否可设置全局常量映射,根据选中变量返回对应UUID值?

Grafana三变量组合映射UUID实现方案

完全可以实现该需求,无需额外安装插件,以下是两种常用的可行方案:

方案1:隐藏自定义变量+内置replace函数(全数据源通用)

该方案不依赖你的数据源类型,纯靠Grafana内置功能实现,适合映射条目较少(≤10条)的场景,操作步骤如下:

  • 进入仪表盘设置 → 变量页 → 点击「新增变量」
  • 按以下规则配置变量:
    • 名称:uuid
    • 类型:自定义
    • 查询规则:填入嵌套replace映射表达式,示例如下:
      ${replace(replace(replace("${cloud}-${environment}-${location}", 
      "aws-dev-eastus2", "b3207989-162c-4be6-a3d0-3a17444cff7d",
      "azure-stage-westeurope", "5340aad8-ea3d-416b-8ab2-1cafd7c301ca"),
      "gcp-prod-westus2", "2f2b3a9c-c179-4b70-b688-36d9f3548bc2"),
      /^[a-z0-9-]+$/, "unknown")}
      
      新增映射条目只需要在外层再嵌套一层replace即可,最后一个规则用于匹配未配置的组合返回默认值。
    • 隐藏选项:选择隐藏变量(无需展示给终端用户)
    • 刷新规则:选择随其他变量变更刷新

配置完成后,你可以在仪表盘所有面板的查询、文本组件中直接使用${uuid}变量获取对应组合的UUID值,三个筛选变量变更时UUID会自动同步更新。

方案2:数据源侧映射(适合映射条目多的场景)

如果你的映射条目超过10条,用内置函数写太长不好维护,可以把映射关系存在数据源侧实现:

  • 若使用SQL类数据源:提前把所有三变量组合和对应UUID存入一张映射表,新增uuid变量类型为查询,查询语句示例:
    select uuid from env_uuid_map where cloud='${cloud}' and environment='${environment}' and location='${location}' limit 1
    
  • 若使用Prometheus类数据源:可以通过metric_relabel_configs提前把UUID作为标签绑定到对应指标上,或者在查询时用label_replace函数做映射匹配。

该方案的优势是后续更新映射关系只需要修改数据源中的内容,不需要调整Grafana仪表盘配置。

注意:建议始终为未匹配到的组合预留默认返回值(比如上述示例中的unknown),避免变量为空导致面板查询报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 17:48:03