CAT开源地址:https://github.com/dianping/cat。
第一步:拉取代码,结构如下图所示。
直接拉取下来的CAT默认使用jdk1.5,这会导致代码报错,需要手动更改项目编码到1.6即以上(我使用的是1.8)。并且修改pom文件,添加:
<plugin> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.8</source> <target>1.8</target> </configuration>
</plugin>
第二步:找到script目录,将Cat.sql导入到mysql中。这里遇到个小问题,我一开始下载的mysql8.0,选择密码方式的时候没注意选了加密版的,导致输入密码正确却连不上数据库,到最后启动失败。
在项目所在目录创建/data/appdatas/cat文件夹,将script文件夹中剩余三个文件copy过去,并根据自己的环境修改参数即可。
我的配置:
client.xml
datasources.xml
<?xml version="1.0" encoding="utf-8"?>
<data-sources> <data-source id="cat"> <maximum-pool-size>3</maximum-pool-size> <connection-timeout>5s</connection-timeout> <idle-timeout>10m</idle-timeout> <statement-cache-size>200</statement-cache-size> <properties> <driver>com.mysql.jdbc.Driver</driver> <url><![CDATA[jdbc:mysql://localhost:3306/cat]]></url> <user>root</user> <password>****</password> <connectionProperties><![CDATA[useUnicode=true&autoReconnect=true&useSSL=false]]></connectionProperties> </properties> </data-source> <data-source id="app"> <maximum-pool-size>3</maximum-pool-size> <connection-timeout>5s</connection-timeout> <idle-timeout>10m</idle-timeout> <statement-cache-size>200</statement-cache-size> <properties> <driver>com.mysql.jdbc.Driver</driver> <url><![CDATA[jdbc:mysql://localhost:3306/cat]]></url> <user>root</user> <password>****</password> <connectionProperties><![CDATA[useUnicode=true&autoReconnect=true&useSSL=false]]></connectionProperties> </properties> </data-source>
</data-sources>
server.xml
<?xml version="1.0" encoding="utf-8"?>
<!-- Configuration for development environment-->
<config local-mode="false" hdfs-machine="false" job-machine="false" alert-machine="false"> <storage local-base-dir="/data/appdatas/cat/bucket/" max-hdfs-storage-time="15" local-report-storage-time="7" local-logivew-storage-time="7"> </storage> <console default-domain="Cat" show-cat-domain="true"> <remote-servers>localhost:8080</remote-servers> </console>
</config>
第三步:执行mvn clean install -Dmaven.test.skip=true打包。
打开启动配置,添加本地tomcat,以便debug了解源码流程。


接着运行tomcat即可,再浏览器输入http://localhost:8080/cat/r/t?domain=cat即可查看。

第四步:自己写一个客户端测试CAT能否成功记录。
CAT默认是通过DefaultClientConfigManager类的loadProjectName方法读取/META-INF/app.properties里面的属性,不想专门建一个工程,可以直接修改该方法返回值。
测试代码:
import com.dianping.cat.Cat;import com.dianping.cat.message.MessageProducer;import com.dianping.cat.message.Transaction;import com.dianping.cat.message.internal.DefaultTransaction;public class Test { static int count; public static void main(String[] args) throws InterruptedException { for (; ; ) { if (count < 10) { Cat.logEvent("test", "test"); Transaction transaction = Cat.getProducer().newTransaction("MyTrans", "test"); transaction.setStatus(Transaction.SUCCESS); transaction.complete(); Thread.sleep(1000L); count++; } else { Thread.sleep(10000L); } } } }
查看CAT。

文章转载自贰级天災,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




