cat客戶端整合
配置內容: web.xml配置過濾器;struts配置異常控制;新增對cat jar的依賴,新增對app.properties屬性配置。新增client.xml
./data/appdatas/cat/目錄下,新建一個client.xml檔案(線上環境是OP配置) eclipse 根目錄下,與伺服器端一樣配置。
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"> </constant>
解決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"> </domain></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"> </server></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"> </server></servers> <domain id="mobile-api" enabled="false"> </domain></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"> </appender-ref></level></root>
c)注意有一些Log的是不繼承root的,需要如下配置
<logger name="com.dianping.api.location" additivity="false"> <level value="INFO"> <appender-ref ref="locationAppender"> <appender-ref ref="catAppender"> </appender-ref></appender-ref></level></logger>