CAT是 点评开源的综合性的监控平台,要包括移动端监控,应用侧监控,核心网络层监控,系统层监控等。并能提供实时监控报警,应用性能分析诊断的工具。
目前最新版本是18年10月刚升级的2.0版本,从网上搜罗的资料文档都比较模糊,包括官方文档也没有实时更新,给搭建平台造成了不必要的麻烦。因此根据自己的摸索实践,将平台搭建的每一步都截图细化下来,保证搭建顺利。
本次搭建在windows环境下,具体环境如下:
java version "1.8.0_31"
Apache Maven 3.5.4
apache-tomcat-8.0.9
Mysql 5.7+
IDEA 2018
操作步骤如下:
1. 源代码下载
登陆码云或者github把CAT代码down到本地,码云下载地址:https://gitee.com/mirrors/CAT/tags,本次下载选用红色框标记的部分
2. 代码导入idea
导入后maven会自动下载相关依赖,导入后效果如下:
3. 初始化数据库并修改配置文件
- CAT数据存储于MySQL数据库script文件夹下面的Cat.sql 导入Mysql 数据库,版本要求5.7+
-
修改datasources.xml配置文件,将数据库链接替换成自己的数据库配置
4. 源代码编译
点击如下图所示按钮,并输入命令
clean install -Dmaven.test.skip=true
编译打成war包
5. war包部署
将编译后的war包部署到tomcat 下,注意:暂不启动
6. 本地配置文件创建
在项目部署所在目录的根目录创建/data/appdatas/cat文件夹,例如我项目部署在C:\tools\apache-tomcat-8.0.9,那么创建好的目录结构就应该是:C:\data\appdatas\cat
并将script文件夹中的3个xml配置文件复制粘贴到刚创建好的目录下
7. 启动tomcat并测试
若显示如下画面,表示服务端配置成功
下面是CAT 客户端集成步骤:
本次集成工程为spring boot2 工程,集成步骤如下:
- 集成POM文件
在pom.xml中引入CAT 客户端包
<dependency> <groupId>com.dianping.cat</groupId> <artifactId>cat-client</artifactId> <version>2.0.0</version> </dependency>
若maven编译不通过,找不到该包,则需要手动安装到本地,手动安装步骤为
1.去idea 图片目录找到cat-client-2.0.0.jar ,并复制到本地目录
2.进入到jar包复制目录的文件夹下面,并执行
mvn install:install-file -DgroupId=com.dianping.cat -DartifactId=cat-client -Dversion=2.0.0 -Dpackaging=jar -Dfile=cat-client-2.0.0.jar
- 官方文档中只体现了集成spring mvc 客户端的方式,现修改为spring boot 2的方式,方式如下:添加过滤器
/**
* Cat 过滤器初始化
*/
public class CatFilterConfigure{
@Bean
public FilterRegistrationBean catFilter() {
FilterRegistrationBean registration = new FilterRegistrationBean();
CatFilter filter = new CatFilter();
registration.setFilter(filter);
registration.addUrlPatterns("/*");
registration.setName("cat-filter");
registration.setDispatcherTypes(DispatcherType.REQUEST,DispatcherType.FORWARD);
registration.setOrder(1);
return registration;
}
}
- 添加客户端配置类,代码如下:
/**
* Cat客户端配置
*/
public class CatClientConfigProvider implements ClientConfigProvider {
@Override
public ClientConfig getClientConfig() {
ClientConfig config = new ClientConfig();
config.addServer(new Server("127.0.0.1"));
config.addDomain(new Domain("Tunny"));
return config;
}
}
-
添加resourece 目录配置文件,目录结构及配置如下:
-
编写客户端埋点代码,注释写的比较详细,代码结构如下:
启动客户端服务,并调用埋点所在Controller接口
-
埋点效果测试,登陆cat服务端
效果如下,表示客户端与服务端通信正常