Java告警策略_Cat应用告警实战

本文详细解析Cat应用的告警配置,包括告警策略、默认告警人、告警服务端设置,以及应用告警配置中的Transaction告警。重点介绍了告警策略中的参数含义,如send、suspendMinute、warning和error,并提醒读者注意接口返回值需包含"200"字符串。此外,还澄清了Transaction告警中的执行次数、响应时间、失败率等概念,强调它们是计数器而非异常判断,并指出告警级别并非代码报错级别,而是环境和时间间隔的选择。
摘要由CSDN通过智能技术生成

1. Cat应用告警实战

1.1. 前言

好像是中间件设计者的通病,文档写的都是面向有一定使用各种中间件经验的人,告警模块中每个参数其实都可以详细解释一下,要不然我们理解起来真的很吃力还容易采坑

1.2. 全局系统配置

1.2.1. 告警策略

如下图所示,告警策略官方有模板,只要适当修改一下即可,这里我详细解释一下这里涉及到的一些概念,刚接触的人真的可能一脸懵逼

ea20fc902b41be9a7db86462363e97a5.png

首先看到这里指定send为mail,weixin,sms等等是不是很激动,以为它都给你封装好了,你只需配置一下就可以发送告警?别想多了,这里只代表一个个类型,suspendMinute代表发送告警间隔时间,避免同样的告警一直发送,而warning和error在这个系统中也多次出现了都是同样的意思,只是代表一种告警类型,不要以为是你系统报了error错误或者warn错误它就会报警,而id为Transaction则是一种标识,当在别的便签里看到id为该值时就知道了

1.2.2. 默认告警人

如下图,看到id值就知道了和上面的告警策略对应,需要保持相同,email等可以填多个值

32f6b6cf697f92c53cb802918d92dcb9.png

1.2.3. 告警服务端

如下图,对应了告警策略中mail类型的服务端配置,这里只有url需要改动,也是告警的核心功能,自己写接口去,把发送邮件的接口提供出来然后把地址放这里

79da193e3d10b726f584aad1661b68c6.png

请注意一点,也是我踩过的坑,看到successCode="200"这个配置了吗?我们提供接口肯定是要有返回值的吧,我没在它的文档里找到交代,在报完错后直接找它的源码,发现了它判断接口调用成功的依据是你返回给它的字符串里包含"200",别怀疑了,连引号也包括,我第一次返回的是个对象属性里存在Integer类型的code为200,这都不行,必须是字符串的,所以最简单的返回值如下:

@RequestMapping(value = "/alert/msg")

public String sendAlert(HttpServletRequest request) {

...

发送邮件代码,网上一大堆自己抄,省略

...

return "200";

}

或者code为String类型

1.3. 应用告警配置

1.3.1. Transaction告警

如图,可以是Transaction级别也可以是Event级别,以Transaction为例,点右上角加号可以添加监控项

614546743226dbe5a8c9528f4b73e287.png

因为Cat本身提供了一个例子,但同时也可能起到误导作用,它例子的Type类型都是URL,但是这不是一个可选项,这是一个必填项,而填什么文档有没有交代清楚,导致了我调试很久才反应过来,这里应该填的是我们系统自己埋点时,Transaction中填的type,如下

Transaction newTransaction(String type, String name) {

或者用注解的时候我们也会指定个type,这里需要填写的就是这个

进入编辑

56ed232b92476e871fb15dc17895b41b.png

如上图第一点,这里点进去看起来灰蒙蒙的,在一般理解都是不可选择项,但实际上它是可以点开来的,选中状态颜色是会深一点点

这里的几个词的概念它文档同样没解释清楚,一笔带过,这里的执行次数还带歪了我同事,让他以为是在一定时间内错误异常的执行次数达到一定值就会告警,但实际上,它就是个计数器,在自己设置的持续时间内,到达规则指定值就会告警,比如最大值100,持续1分钟,那么1分钟请求200次就会告警,和异常毫无关系

还有响应时间,失败率,最大响应时间等,文档都是一笔带过,或者描述不够详细,最起码的应该告诉我单位是什么吧,虽然毛想想响应时间应该是毫秒级别,失败率应该是个小数,但谁知道失败率你会不会以%为单位乘了个100呢,经过我实际测试,失败率的确是填写的小数,也就是持续时间比如1分钟内,请求失败的数量除以总请求书,所以报错到告警最晚可能会延迟1分钟

至于这持续分钟经测试不能填写小数

还有第二点告警级别,我同事一度以为是代码的报错级别,实际上这里仅仅代表你需要发送告警到哪几个环境以及发送告警的时间间隔

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值