Grafana 9.2.3:配置no_data_state为OK时预置告警仍触发无数据告警
排查Grafana ConfigMap预置告警无数据触发问题
1. 核对ConfigMap配置层级是否正确
Grafana告警规则的配置层级要求严格,no_data_state和exec_err_state必须嵌套在alert对象下,不能与expr平级或放在外层。
错误示例:
alert: expr: "sum(metric) > 0" no_data_state: "OK" exec_err_state: "OK"
正确示例:
alert: expr: "sum(metric) > 0" no_data_state: "OK" exec_err_state: "OK"
2. 确认ConfigMap配置是否被Grafana正确加载
- 查看Grafana Pod日志,搜索是否存在ConfigMap加载相关错误,比如权限问题、YAML语法错误(缩进错误、引号不匹配等)。
- 登录Grafana UI查看对应告警规则详情,确认
No Data State和Execution Error State是否确实显示为OK。如果UI中仍显示Alerting,说明配置未被正确解析加载。
3. 检查数据源与评估范围是否和UI配置一致
- 确保ConfigMap中告警规则使用的数据源与UI创建的完全一致,包括数据源的UID、名称。数据源不匹配可能导致查询无数据的逻辑与UI规则不一致。
- 核对规则的
for字段配置,虽然该字段不直接影响无数据状态,但配置错误可能造成误触发的错觉。
4. 尝试切换为驼峰命名的字段格式
Grafana 9.2.x通过ConfigMap导入告警规则时,部分字段可能存在解析差异。官方文档标注的是下划线格式,但实际导入时可能识别驼峰命名。可以尝试修改为以下格式测试:
alert: expr: "sum(metric) > 0" noDataState: "OK" execErrState: "OK"
5. 检查模板变量配置是否一致
如果UI创建的告警使用了模板变量,ConfigMap中的规则必须同步设置完全一致的变量默认值、范围。变量配置错误会导致查询返回无数据的场景与UI规则不同,进而触发告警。
内容的提问来源于stack exchange,提问作者Tom Simpson
相关产品推荐
相关产品推荐

