1. Cat应用告警实战

1.1. 前言

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

1.2. 全局系统配置

1.2.1. 告警策略

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

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

1.2.2. 默认告警人

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

1.2.3. 告警服务端

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

  • 请注意一点,也是我踩过的坑,看到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为例,点右上角加号可以添加监控项

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

Transaction newTransaction(String type, String name) {

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

  • 进入编辑

  • 如上图第一点,这里点进去看起来灰蒙蒙的,在一般理解都是不可选择项,但实际上它是可以点开来的,选中状态颜色是会深一点点
  • 这里的几个词的概念它文档同样没解释清楚,一笔带过,这里的执行次数还带歪了我同事,让他以为是在一定时间内错误异常的执行次数达到一定值就会告警,但实际上,它就是个计数器,在自己设置的持续时间内,到达规则指定值就会告警,比如最大值100,持续1分钟,那么1分钟请求200次就会告警,和异常毫无关系
  • 还有响应时间,失败率,最大响应时间等,文档都是一笔带过,或者描述不够详细,最起码的应该告诉我单位是什么吧,虽然毛想想响应时间应该是毫秒级别,失败率应该是个小数,但谁知道失败率你会不会以%为单位乘了个100呢,经过我实际测试,失败率的确是填写的小数,也就是持续时间比如1分钟内,请求失败的数量除以总请求书,所以报错到告警最晚可能会延迟1分钟
  • 至于这持续分钟经测试不能填写小数
  • 还有第二点告警级别,我同事一度以为是代码的报错级别,实际上这里仅仅代表你需要发送告警到哪几个环境以及发送告警的时间间隔

Cat应用告警实战的更多相关文章

  1. 解Bug之路-主从切换"未成功"?

    解Bug之路-主从切换"未成功"? 前言 数据库主从切换是个非常有意思的话题.能够稳定的处理主从切换是保证业务连续性的必要条件.今天笔者就来讲讲主从切换过程中一个小小的问题. 故障 ...

  2. K8S(14)监控实战-grafana出图_alert告警

    k8s监控实战-grafana出图_alert告警 目录 k8s监控实战-grafana出图_alert告警 1 使用炫酷的grafana出图 1.1 部署grafana 1.1.1 准备镜像 1.1 ...

  3. k8s实战之部署Prometheus+Grafana可视化监控告警平台

    写在前面 之前部署web网站的时候,架构图中有一环节是监控部分,并且搭建一套有效的监控平台对于运维来说非常之重要,只有这样才能更有效率的保证我们的服务器和服务的稳定运行,常见的开源监控软件有好几种,如 ...

  4. Shell脚本实战:日志关键字监控+自动告警

    一个执着于技术的公众号 该程序使用场景说明:主要用于Linux服务器监控程序日志,如出现关键字异常则触发相应的动作或告警操作,通知到邮件联系人. 一.安装邮件服务 1.解压 tar -jxf mail ...

  5. Zabbix实战-简易教程--告警屏蔽(Maintenances)

    Zabbix Maintenance 一.Zabbix Maintenance(zabbix告警屏蔽) 很多时候,我们需要在某段时间更新维护线上环境,这个时候你是已知触发器会引发报警,所以此时你可以提 ...

  6. kubernetes实战(二十):k8s一键部署高可用Prometheus并实现邮件告警

    1.基本概念 本次部署使用的是CoreOS的prometheus-operator. 本次部署包含监控etcd集群. 本次部署适用于二进制和kubeadm安装方式. 本次部署适用于k8s v1.10版 ...

  7. SLS机器学习最佳实战:日志聚类+异常告警

    1.手中的锤子都有啥? 围绕日志,挖掘其中更大价值,一直是我们团队所关注.在原有日志实时查询基础上,今年SLS在DevOps领域完善了如下功能: 上下文查询 实时Tail和智能聚类,以提高问题调查效率 ...

  8. 【Rsync项目实战】备份全网服务器数据

    [Rsync项目实战]备份全网服务器数据 标签(空格分隔): Linux服务搭建-陈思齐 ---本教学笔记是本人学习和工作生涯中的摘记整理而成,此为初稿(尚有诸多不完善之处),为原创作品,允许转载,转 ...

  9. 《Apache kafka实战》读书笔记-kafka集群监控工具

    <Apache kafka实战>读书笔记-kafka集群监控工具 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 如官网所述,Kafka使用基于yammer metric ...

随机推荐

  1. Spring集成Shiro使用小结

    shiro的认证流程 Application Code:应用程序代码,由开发人员负责开发的 Subject:框架提供的接口,代表当前用户对象 SecurityManager:框架提供的接口,代表安全管 ...

  2. Java 读写 excel 实战完全解析

    本文微信公众号「AndroidTraveler」首发. 背景 时值毕业季,很多毕业生初入职场. 因此,这边也写了一些新手相关的 Android 技术点. 比如上一篇的 Android 开发你需要了解的 ...

  3. Sting和Long类型转换

    java String 转 Long 两种方法区别Long.ValueOf("String")返回Long包装类型包装类型: Byte,Integer,Short,Long,Boo ...

  4. 入门训练-4. Fibonacci数列

    问题描述 Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1. 当n比较大时,Fn也非常大,现在我们想知道,Fn除以10007的余数是多少. 输入格式 输入包含一个整数n ...

  5. Webpack概念

    webpack概念 我经常用 webpack,打算做一次比较详细的概念清点和梳理.从 0 配置 webpack,由于 webpack5(2019.07.27)暂时还没有发布.并且从Webpack Mi ...

  6. hdu多校第八场Parentheses Matrix

    #include<bits/stdc++.h> using namespace std; ][]; int main() { int t; scanf("%d",&am ...

  7. 改MySQL的编码方式,解决jdbc MySQL中文乱码问题

    进MySQL安装目录,打开my.ini 这两个地方改成gbk 重启服务

  8. Linux虚拟机所装软件说明

    Linux虚拟机所装软件说明 第一台虚拟机192.168.72.201 的 /usr/local/ 目录下放了一下软件: drwxr-xr-x 3 root root 4096 6月 14 19:16 ...

  9. darknet是如何对数据集做resize的?

    在准备数据集时,darknet并不要求我们预先对图片resize到固定的size. darknet自动帮我们做了图像的resize. darknet训练前处理 本文所指的darknet版本:https ...

  10. S2:c#继承

    在C#中,如果一个类后面通过冒号又跟了另外一个类,那么我们就称冒号前面的类为子类,冒号后面的类为父类.这种书写类的方式放映出来的关系就称为类的继承关系. 1.子类:派生类 父类:基类或者超类 满足is ...