CAT 安装部署:
下文将一步步介绍如何安装服务端、如何接入客户端、如何查看一些监控指标
首先,准备安装环境
1.确保待安装环境已经安装了jdk(1.6,1.7版本)、git、maven(maven 版本需要在 3.2.3以上)mysql、web容器 tomcat,这里不再赘述
2.下载cat源码:https://github.com/dianping/cat.git,并导入到eclipse(导入过程中可能会遇到一些问题,可以不必在此纠结,继续下一步)
3.下载master打包后的包,https://github.com/dianping/cat/archive/master.zip,并解压到本地
其次,安装服务端
1.打war包:进入到解压后的 源码文件夹,运行maven打包命令:
- mvn clean install -DskipTests
2. 部署war包:当运行完打包命令,会在每个子模块中,生成打包后的文件
- * cat-home.war : 服务端组件,负责收集监控信息,分析处理生成报告、作出警告(<span style="margin: 0px; padding: 0px; list-style: none outside none; word-break: normal; word-wrap: break-word; font-size: 18px; line-height: 27px;">需要的服务端war包</span>)
- * cat-agent.war : 监控端组件,负责收集被监控端信息,并上传监控信息到服务端
- * cat-client.jar : 客户端组件,负责与服务端进行连接通信,
- * cat-core.jar : 核心处理组件,负责具体的与客户端通信服务,解析数据、输出报告
- * cat-consumer.jar : 消费处理组件,负责实际的监控数据分析,处理工作
- * cat-hadoop.jar : HDFS存储组件
- * broker-service.war : 监控服务代理组件
接着,客户端接入
1.待监控项目pom文件加入依赖
- <dependency>
- <groupId>com.dianping.cat</groupId>
- <artifactId>cat-core</artifactId>
- <version>1.3.6</version>
- </dependency>
- <filter>
- <filter-name>cat-filter</filter-name>
- <filter-class>com.dianping.cat.servlet.CatFilter</filter-class>
- </filter>
- <filter-mapping>
- <filter-name>cat-filter</filter-name>
- <url-pattern>/*</url-pattern>
- <dispatcher>REQUEST</dispatcher>
- <dispatcher>FORWARD</dispatcher>
- </filter-mapping>
app.properties 加入一行app.name=项目名(即domain)
3.加入监控逻辑
- @RequestMapping("index")
- public ModelAndView index(HttpServletRequest request, HttpServletResponse response){
- Transaction t = Cat.getProducer().newTransaction("your transaction type", "your transaction name");
- try {
- System.out.println("debug...");
- Cat.getProducer().logEvent("your event type", "your event name", Event.SUCCESS, "keyValuePairs");
- t.setStatus(Transaction.SUCCESS);
- } catch (Exception e) {
- Cat.getProducer().logError(e);//用log4j记录系统异常,以便在Logview中看到此信息
- t.setStatus(e);
- // throw e;
- /* (CAT所有的API都可以单独使用,也可以组合使用,比如Transaction中嵌套Event或者Metric。)
- (注意如果这里希望异常继续向上抛,需要继续向上抛出,往往需要抛出异常,让上层应用知道。)
- (如果认为这个异常在这边可以被吃掉,则不需要在抛出异常。)*/
- } finally {
- t.complete();
- }
- return new ModelAndView("main");
- }
4.重启待监控项目,并访问一个项目的页面,同时进入监控平台(默认用户catadmin/catadmin)http://127.0.0.1:8341/cat/r/,这时我们会发现,下图中有了数据(profit为项目名)