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. SpringBoot2.0集成WebSocket,实现后台向前端推送信息

    感谢作者,支持原创: https://blog.csdn.net/moshowgame/article/details/80275084 什么是WebSocket? WebSocket协议是基于TCP ...

  2. 编译Tomcat9源码及tomcat乱码问题解决

    因工作原因,需要从根本上优化tomcat的配置,故准备从源码入手,看看可以做哪些工作. 1. tomcat下载 tomcat最新的版本为9,下载源码的方式有3种: 1/ 官方网站 https://to ...

  3. Java秒杀系统实战系列~构建SpringBoot多模块项目

    摘要:本篇博文是“Java秒杀系统实战系列文章”的第二篇,主要分享介绍如何采用IDEA,基于SpringBoot+SpringMVC+Mybatis+分布式中间件构建一个多模块的项目,即“秒杀系统”! ...

  4. 快速掌握mongoDB(五)——读写分离的副本集实现和Sharing介绍

    1 mongoDB副本集 1 副本集简介 前边我们介绍都是单机MongoDB的使用,在实际开发中很少会用单机MongoDB,因为使用单机会有数据丢失的风险,同时单台服务器无法做到高可用性(即当服务器宕 ...

  5. Python -----函数(基础部分)

    函数: 1.定义: 函数是对功能的封装 2.语法: def 函数名 函数体 函数名 函数名的命名规则和变量一样 3.函数的返回值: return,函数执行完毕,不会执行后面的 1.如果函数中不写ret ...

  6. ThinkPHP 5.0 配置

    ThinkPHP 5.0 配置 目录 <!-- 系统默认的配置文件目录就是应用目录(APP_PATH), 也就是默认的application下面,并分为应用配置 (整个应用有效)和模块配置(仅针 ...

  7. RestClient测试

    1,对象里面包含集合及字符串属性 {"roloeList":[{ "id":10001,"areaid":1,"name" ...

  8. 【Sublime】设置显示编码格式

    Mac 上的 Sublime 显示编码格式,设置方法: 右下角显示的 UTF-8 就是当前的编码格式. 添加如下代码: { "font_size": 18, // Display ...

  9. interceptor拦截器

    fifter.servlet.interceptor fifter用来处理请求头.请求参数.编码的一些设置,然后转交给servlet,处理业务,返回 servlet现在常用的spring,servle ...

  10. Vmware Exsi使用简要说明

    界面介绍 Exsi的管理工具可以用vSphere Client来管理虚拟机.管理虚拟的网络交换机.管理物理机的内存.物理机的硬盘.物理机的CPU等资源.界面的大致介绍如下图. 资源分配 创建内存.CP ...