通过ARM部署阈值为0的Azure计划查询规则告警不触发问题咨询
API版本适配说明
你遇到的触发失败问题核心是不同API版本的日志告警默认工作模式差异:
- 手动创建告警导出的
2021-02-01-preview版本默认使用结果数计数模式,无匹配结果时会自动返回计数为0的行,符合事件缺失检测的阈值0触发逻辑 - 实际部署使用的
2020-05-01-preview版本默认走指标测量模式,平台会自动给自定义查询追加时间分组聚合逻辑,无匹配结果时不会返回任何行,阈值0自然无法命中
建议直接更换为2021-02-01-preview及以上的API版本,和导出的正常工作的模板版本保持一致即可,不需要额外修改核心配置。
需排查的核心配置项
如果不想更换API版本,需要在现有模板里补充/修正以下配置:
- 显式指定查询类型:在
properties.condition.allOf[0]节点下添加"queryType": "ResultCount",强制关闭默认的指标测量模式,避免平台自动追加bin分组聚合逻辑 - 修正时间聚合配置:把
timeAggregation属性设置为Count,不要使用Average/Total等指标类聚合值 - 移除自定义查询里的重复时间过滤:当前自定义查询已经写了
timestamp >= now(-24h),如果告警规则的windowSize也设置为24小时,平台会自动追加额外的时间过滤条件,建议删除自定义查询里的时间范围声明,统一由告警规则的windowSize参数控制时间窗口 - 检查缺失数据的处理逻辑:确认
properties.condition.allOf[0]下没有"failIfDataMissing": false配置,该配置会让平台在无数据时跳过告警评估,保持默认值true即可保证无数据时正常触发阈值判断
内容的提问来源于stack exchange,提问作者Cargowire
相关产品推荐
相关产品推荐

