Grafana重复面板添加表达式后多值变量查询传参异常
Grafana 重复面板搭配表达式时多选变量传参异常
复现步骤
- 创建支持多选的自定义变量,示例取值为
cluster = [1, 2, 3] - 配置面板按
cluster变量开启重复(Repeated)规则,面板标题设置为$cluster - 配置面板基础查询语句:
SELECT CPUUtilization FROM datasource WHERE ClusterIdentifier = $cluster - 在面板中添加任意EXPRESSION(表达式,常用场景为查询结果阈值判断)
异常现象
全选变量所有取值时:
- 面板标题渲染逻辑正常,可正确生成3个标题分别为1、2、3的重复面板
- 所有重复面板的查询均传入变量全量值,实际统一执行语句为:
未按预期给每个面板传入对应的单个变量值SELECT CPUUtilization FROM datasource WHERE ClusterIdentifier = {1, 2, 3}
预期正常行为
未添加表达式时功能符合设计预期,3个重复面板应分别传入对应单值执行查询:
- 标题为1的面板执行:
SELECT CPUUtilization FROM datasource WHERE ClusterIdentifier = 1 - 标题为2的面板执行:
SELECT CPUUtilization FROM datasource WHERE ClusterIdentifier = 2 - 标题为3的面板执行:
SELECT CPUUtilization FROM datasource WHERE ClusterIdentifier = 3
根因说明
该问题属于Grafana的已知兼容bug:面板新增表达式节点后,重复面板的作用域变量解析逻辑失效,查询不会读取当前重复实例对应的单变量值,而是直接读取全局选中的全量变量值;移除表达式后,作用域变量解析逻辑恢复正常。
解决方法
- 临时规避:不在Grafana面板层配置表达式,将阈值判断、数值计算等逻辑下推到数据源侧实现,直接在查询语句中完成相关计算,避免触发bug
- 永久修复:升级Grafana到9.5.15、10.1.6、10.2.2及以上的正式版本,上述版本已合入该bug的修复代码,升级后可同时保留重复面板配置和面板内表达式功能。
内容的提问来源于stack exchange,提问作者My Boi
相关产品推荐
相关产品推荐

