什么是CAT
CAT是由大众点评开源的一款调用链监控系统,基于Java开发的。
优点:聚合报表丰富,中文支持好,国内案例多。
缺点:具有代码侵入性
CAT 很大的优势是它是一个实时系统,CAT 大部分系统是分钟级统计,但是从数据生成到服务端处理结束是秒级别,秒级定义是48分钟40秒,基本上看到48分钟38秒数据,整体报表的统计粒度是分钟级;第二个优势,监控数据是全量统计,客户端预计算;链路数据是采样计算
CAT优势
实时处理:信息的价值会随时间锐减,尤其是事故处理过程中。
全量数据:全量采集指标数据,便于深度分析故障案例。
高可用:故障的还原与问题定位,需要高可用监控来支撑。
故障容忍:故障不影响业务正常运转、对业务透明。
高吞吐:海量监控数据的收集,需要高吞吐能力做保证。
可扩展:支持分布式、跨 IDC 部署,横向扩展的监控系统。
报表丰富: 帮助管理人员从各个角度了解系统的整体状况。
一、前提条件:
1、安装好JDK(1.8版本以上),配置好JDK的环境变量
2、安装好tomcat(8.5版本或以上),配置好tomcat的系统环境变量
3、安装好mysql(8.0版本)
二、配置cat3.0版本
1、tomcat配置
在tomcat部署所在的磁盘下创建/data/appdatas/cat/目录,并在此目录下创建配置文件,client.xml,datasources.xml,server.xml。经过测试,/data/appdatas/cat/目录在windows下也不一定非得在tomcat部署的磁盘目录下;也可以再其他磁盘下,但环境变量必须设置CAT_HOME
三个文件的内容如下:
client.xml
<?xml version="1.0" encoding="utf-8"?> <!-- 下面的IP地址替换为主机的IP地址 --> <config mode="client"> <servers> <server ip="127.0.0.1" port="2280" http-port="8080"/> </servers> </config>
配置说明:
mode : 定义配置模式,固定值为client;–暂未使用
servers : 定义多个服务端信息;
server : 定义某个服务端信息;
ip : 配置服务端(cat-home)对外IP地址
port : 配置服务端(cat-home)对外TCP协议开启端口,固定值为2280;
http-port : 配置服务端(cat-home)对外HTTP协议开启端口, 如:tomcat默认是8080端口,若未指定,默认为8080端口;
datasources.xml
<?xml version="1.0" encoding="utf-8"?> <data-sources> <data-source id="cat"> <maximum-pool-size>3</maximum-pool-size> <connection-timeout>1s</connection-timeout> <idle-timeout>10m</idle-timeout> <statement-cache-size>1000</statement-cache-size> <properties><driver>com.mysql.jdbc.Driver</driver> <!-- 请替换为真实数据库URL及Port --> <url><![CDATA[jdbc:mysql://127.0.0.1:3306/cat_monitor]]></url> <!-- 请替换为真实数据库用户名 --> <user>root</user> <!-- 请替换为真实数据库密码 --> <password>1203</password> <connectionProperties><![CDATA[useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&socketTimeout=]]></connectionProperties> </properties> </data-source> </data-sources>
server.xml可以不用,会用默认文件,如果你要安装HDFS存报表需要。
2、设置环境变量CAT_HOME
环境变量的值为创建的cat文件夹目录
三、编译源码文件(或者直接下载war包也可以)
1、War下载
War下载地址:https://github.com/dianping/cat/releases/download/3.1.0/cat-home.war
下载完毕后把cat-home.war的名字更改为cat.war。
或者直接下载源码编译 :
GitHub - dianping/cat: CAT 作为服务端项目基础组件,提供了 Java, C/C++, Node.js, Python, Go 等多语言客户端,已经在美团点评的基础架构中间件框架(MVC框架,RPC框架,数据库框架,缓存框架等,消息队列,配置系统等)深度集成,为美团点评各业务线提供系统丰富的性能指标、健康状况、实时告警等。
2、把war包拷贝到tomcat的webapps目录下
四、数据库创建
在MySQL建立一个cat的空数据库,然后导入脚本即可,脚本路径 /script/CatApplication.sql
五、启动tomcat,浏览cat页面
1、将cat.war放入tomcat的webapps,双击D:\apache-tomcat-8.5.30\bin\startup.bat。
启动tomcat,
浏览地址为http://localhost:8080/cat/r
用户名:admin;密码:admin
- 图中1是上报日志类型栏
- 2是应用栏,选择2才能到此界面
- 3是选择时间栏,因为日志是根据时间分的,选择哪段时间可以查询哪段的,左侧为显示的查询时间
- 4为分钟,要查看的日志分钟
- 5为上报日志的应用
Transaction栏
Problem栏
Problem记录整个项目在运行过程中出现的问题,包括一些异常、错误、访问较长的行为。Problem报表是由logView存在的特征整合而成,方便用户定位问题。
所有错误汇总报表第一层分类,代表错误类型(称为type),比如error、long-url等,第二级分类(称为status),对应具体的错误,比如一个异常类名等
六、客户端实现
参看cat-monitor-test项目
Springboot的启动项目必须与tomcat的项目在同一个磁盘目录下
附录:
CAT提供以下几种报表,也就是支持以下几种类型的功能。
Transaction报表 一段代码运行时间、次数,比如URL、Cache、SQL执行次数和响应时间
Event报表 一行代码运行次数,比如出现一个异常
Problem报表 根据Transaction/Event数据分析出来系统可能出现的异常,包括访问较慢的程序等
Heartbeat报表 JVM内部一些状态信息,比如Memory,Thread等
Business报表 业务监控报表,比如订单指标,支付等业务指标
JVM相关指标
以下所有的指标统计都是1分钟内的值,cat最低统计粒度是一分钟。
JVM GC 相关指标 描述
NewGc Count / PS Scavenge Count 新生代GC次数
NewGc Time / PS Scavenge Time 新生代GC耗时
OldGc Count 老年代GC次数
PS MarkSweepTime 老年代GC耗时
Heap Usage Java虚拟机堆的使用情况
None Heap Usage Java虚拟机Perm的使用情况
JVM Thread 相关指标 描述
Active Thread 系统当前活动线程
Daemon Thread 系统后台线程
Total Started Thread 系统总共开启线程
Started Thread 系统每分钟新启动的线程
CAT Started Thread 系统中CAT客户端启动线程
可以参考java.lang.management.ThreadInfo的定义
系统指标
System 相关指标 描述
System Load Average 系统Load详细信息
Memory Free 系统memoryFree情况
FreePhysicalMemory 物理内存剩余空间
/ Free /根的使用情况
/data Free /data盘的使用情况
今天的文章 CAT链路监控平台在Windows下安装实践分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ji-chu/99662.html