如何在Alert List面板的告警过滤字段中使用模板变量
问题排查与解决方案
结论
Alert List面板的过滤规则原生支持模板变量,你遇到的无数据返回问题属于配置细节错误,和功能支持性无关。
修复方案
多值变量格式匹配错误
你使用的是多值模板变量,默认多值变量的传递格式为正则表达式格式(多选项会被拼接为值1|值2|值3的格式),而Alert List过滤的默认匹配规则为精确匹配,两者不兼容导致无结果:- 进入
$deployment_name变量的编辑页,确认「多值格式」配置为正则表达式(该选项为默认配置,需排查是否被修改) - 打开Alert List面板的过滤配置,将匹配模式从
等于切换为匹配正则表达式,过滤值填写^$deployment_name$,添加起止符避免模糊匹配到名称包含目标值的无关告警。
- 进入
行重复的变量作用域被覆盖
行级Repeat生成的每行默认会将当前变量值传递给行内所有面板,如果你单独给Alert List面板开启了Repeat选项,会覆盖父行的变量上下文,导致取值异常:
打开Alert List面板的设置页,进入「重复」选项卡,关闭面板级Repeat配置,保持继承父行的变量值即可。告警标签与变量值不匹配
确认你需要过滤的告警规则中,存在与$deployment_name取值完全一致的标签:
需核对标签名是否完全匹配、大小写是否一致、是否存在多余的前后空格,硬编码测试时建议直接复制告警详情内的标签值进行测试,避免拼写错误。
验证流程
- 先暂时关闭行重复配置,手动选择
$deployment_name的单个取值,确认Alert List能正常返回对应告警 - 确认单值场景正常后,重新开启行重复配置,即可实现每行展示对应服务的告警列表。
内容的提问来源于stack exchange,提问作者Deniz
相关产品推荐
相关产品推荐

