版本: v6.7.3
数据源: 阿里云sls
测试方式: 创建两个告警规则, 除了报警条件和规则名称不一样外,其他均一致(包括告警方式, 告警接收人,检查间隔,持续时间等等等)
第一个报警条件:min_over_time(waf_qps_Maximum{domain="xxxx.com.cn-waf"}[5m]) > 1
第二个报警条件:waf_qps_Maximum{domain="xxxx.com.cn-waf"} > 1
补充: 这是通过阿里云的api采集的waf监控数据, 每1分钟投递一次到阿里云sls, xxxx.com.cn的qps非常稳定的持续在100以上
预期: 理论上两个报警条件都应该会触发告警
实际: 只有第一个报警条件成功触发了告警
排查过程:
首先按照文档 https://mp.weixin.qq.com/s/TctM_kosBZesKj6i0oEZew
排查,确认系统、报警通道是没问题。
唯一有区别的是
在即时查询中, 查询 waf_qps_Maximum{domain="xxxx.com.cn-waf"}
"Talbe"是看不到数据了, 但是在"Graph"中是可以看到的, 在告警规则配置界面, "数据预览" 也可以看到数据。 而 min_over_time(waf_qps_Maximum{domain="xxxx.com.cn-waf"}[5m])
则是在这三个场景都可以看到数据
目前临时规避: 配置告警前先通过即时查询查询一下,如果Table方式查询不到, 就用min_over_time方式来配置告警规则
问题: 对于一条指标, 到底是按照聚合方式进行查询(第一种告警方式),还是说可以按照第二种方式查询就能按照我们的预期(在本例子中就是 最近一分钟qps大于1)触发告警, 有没有更优雅的方式可以推荐呢