1. 程式人生 > >cat客戶端整合

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(&quot;cat-page-uri&quot;, &quot;myPageName&quot;);    
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>