1.Web.xml中新增filter

注:如果项目是对外不提供URL访问,比如GroupService,仅仅提供Pigeon服务,则不需要。

Filter放在url-rewrite-filter 之后的第一个,如果不是会导致URL的个数无限多,比如search/1/2,search/2/3等等,无法监控,后端存储压力也变大。
<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>
struts会吃掉URL中的ERROR信息,请在配置中加 <constant name="struts.handle.exception" value="false" />
解决URL中很多重复的问题,比如restfull的url
CAT 提供了自定义的URL的name功能,只要在HttpServletRequest的设置一个Attribute, 在业务运行代码中加入如下code可以自定义URL下name,这样可以进行自动聚合。 HttpServletRequest req ; req.setAttribute("cat-page-uri", "myPageName");
2.Pom.xml中更新jar包(点评内部公共组件,外部公司可以忽略)
<dependency> <groupId>com.dianping.cat</groupId> <artifactId>cat-core</artifactId> <version>1.2.7</version> </dependency>
3、配置domain (cat-core 1.1.3之后版本,优先读取A配置)

A) 在资源文件中新建app.properties文件

在resources资源文件META-INF下,注意是src/main/resources/META-INF/文件夹, 而不是webapps下的那个META-INF,添加app.properties,加上domain配置,如:app.name=tuangou-web

B) 在资源文件中新建client.xml文件

在resources资源文件META-INF下,新建cat文件夹,注意是src/main/resources/META-INF/cat/client.xml文件, 而不是webapps下的那个META-INF,domain id表示项目名称此处为CMDB申请的名字,比如

<config mode="client"> <domain id="tuangou-web"/> </config>
4./data/appdatas/cat/目录下,新建一个client.xml文件(线上环境是OP配置)

如果系统是windows环境,则在eclipse运行的盘,比如D盘,新建/data/appdatas/cat/目录,新建client.xml文件

项目文件中srouce中的client.xml,此文件代表了这个项目我是谁,比如项目的名字Cat。

/data/appdatas/cat/client.xml,此文件有OP控制,这里的Domain名字用来做开关,如果一台机器上部署了多个应用,可以指定把一个应用的监控关闭。

<config mode="client"> <servers> <server ip="192.168.213.115" port="2280" /> </servers> </config>

alpha、beta这个配置需要自己在此目录添加

预发以及生产环境这个配置需要通知到对应OP团队,让他们统一添加,自己上线时候做下检查即可

a、192.168.213.115:2280端口是指向测试环境的cat地址

b、配置可以加入CAT的开关,用于关闭CAT消息发送,将enabled改为false,如下表示将mobile-api这个项目关闭

<config mode="client"> <servers> <server ip="192.168.213.115" port="2280" /> </servers> <domain id="mobile-api" enabled="false"/> </config>
5.CAT的Log4j集成 【建议所有Log都打到CAT,这样才能更快发现问题】

业务程序的所有异常都通过记录到CAT中,方便看到业务程序的问题,建议在Root节点中添加次appendar

a)在Log4j的xml中,加入Cat的Appender>

<appender name="catAppender" class="com.dianping.cat.log4j.CatAppender"></appender>

b)在Root的节点中加入catAppender

<root> <level value="error" /> <appender-ref ref="catAppender" /> </root>

c)注意有一些Log的是不继承root的,需要如下配置

<logger name="com.dianping.api.location" additivity="false"> <level value="INFO"/> <appender-ref ref="locationAppender"/> <appender-ref ref="catAppender"/> </logger>