NRQL告警策略触发违规但未生成incident问题排查咨询
NRQL告警无incident生成故障排查
可能的配置问题
- 时间窗口与上报频率不匹配:10分钟告警时间窗口搭配5分钟/次的数据上报频率,结合5s的EventTimer高频流处理规则,可能出现窗口滑动计算时未采集到最新上报的
my_param数据就完成阈值判断,导致未识别到违规记录。 - 查询范围不一致:告警策略绑定的NRQL查询与查看违规图表的查询存在差异,比如告警查询额外配置了应用、环境、标签类WHERE过滤条件,导致告警侧未读取到对应的违规
Transaction事件。 - 阈值触发逻辑配置错误:阈值判断方向设置错误(如本该大于阈值触发误设为小于)、开启了连续多个窗口违规才生成事件的规则,单次窗口违规无法触发incident生成。
- 自定义参数字段类型异常:查询使用的
latest(my_param)要求my_param为数值类型才能完成阈值比对,如果业务上报的my_param为字符串格式,即使前端图表展示正常,阈值比对逻辑也会失效。 - 推送规则拦截:告警关联的通知渠道配置了事件级别过滤、去重规则,违规事件被判定为重复事件或非匹配级别事件被拦截,不会展示为可见的incident。
- 流处理规则冲突:5s的EventTimer高频流处理针对5分钟才上报一次的稀疏数据,可能被系统判定为无数据流入,跳过阈值校验环节。
排查思路
- 核对两边查询逻辑:对比告警策略使用的NRQL语句和查看违规图表的NRQL语句是否完全一致,确认是否存在额外的过滤条件、聚合维度差异,保证两边查询的数据源完全相同。
- 调整时间窗口与流处理规则测试:临时将告警时间窗口调整为15分钟(覆盖至少3次数据上报周期),关闭EventTimer流处理改用默认的滑动窗口计算逻辑,测试是否能正常触发incident。
- 校验字段类型:执行NRQL语句
SELECT typeof(latest(my_param)) FROM Transaction确认my_param的返回类型为数值类型,若为字符串类型需调整业务上报的字段类型定义。 - 校验触发与推送规则:检查阈值判断方向、违规窗口次数要求配置是否符合预期,临时关闭事件去重、通知过滤规则,测试是否能正常收到incident推送。
- 查看告警执行日志:进入告警策略的执行日志页,确认每次窗口计算时是否成功获取到
my_param的数值、阈值比对结果是否正常,定位问题出在数据采集计算阶段还是事件推送阶段。
违规现象参考

内容的提问来源于stack exchange,提问作者cronzzz
相关产品推荐
相关产品推荐

