dianping / cat

CAT 作为服务端项目基础组件,提供了 Java, C/C++, Node.js, Python, Go 等多语言客户端,已经在美团点评的基础架构中间件框架(MVC框架,RPC框架,数据库框架,缓存框架等,消息队列,配置系统等)深度集成,为美团点评各业务线提供系统丰富的性能指标、健康状况、实时告警等。
Apache License 2.0
18.69k stars 5.43k forks source link

波动下降百分比的规则描述难以理解, #2211

Open baili123 opened 2 years ago

baili123 commented 2 years ago

原文中写的是“比如检查最近10分钟数据,触发个数为3;10分钟数据会算出7个百分比数据,是表示最后3分钟值分别相比前面7分钟值,3组7次比较的下降波动百分比全部>=配置阈值。比如下降50%,阈值填写50。”

这里的“检查最近10分钟数据,触发个数为3”是怎么配置的?子条件配置里的“持续分钟”填10还是3呢? “10分钟数据会算出7个百分比数据,是表示最后3分钟值分别相比前面7分钟值”,是指拿第3、2、1分钟的值分别和前面7分钟比,所以一共会产生21个百分比吧? 最后这个“3组7次比较的下降波动百分比”是谁和谁的百分比算出来的差值算下降的?

power-lin commented 2 years ago

刚我检查了我们的代码,波动上升和下降的描述和实现是有出入的,建议先不要使用这两种规则。建议可以先用自定义监控规则去实现。或者修改java源码(com.dianping.cat.alarm.spi.rule.RuleType类)以及前端页面server_rule_configs.ftl自行制定告警规则。

power-lin commented 2 years ago

根据检查,这两个描述有误,应该如下:

类型 说明
FluAscPer 波动上升百分比(当前值) 波动百分比最大值。当前最后1分钟值比监控周期内其它分钟值(M-1个)的增加百分比都>=设定的百分比时触发警报,比如最近10分钟数据;以最后1分钟时间为基准,和其他9分钟进行比较,如果全部>=配置阈值,则告警。比如上升50%,阈值填写50。
FluDescPer 波动下降百分比(当前值) 波动百分比最小值。当前最后1分钟值比监控周期内其它分钟值(M-1个)的减少百分比都>=设定的百分比时触发警报,比如最近10分钟数据;以最后1分钟时间为基准,和其他9分钟进行比较,如果全部>=配置阈值,则告警。比如下降50%,阈值填写50。

如有需要,可自行实现告警规则。