點評CAT 安裝手冊
阿新 • • 發佈:2019-01-08
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打包命令:
[java]- mvn clean install -DskipTests
2. 部署war包:當執行完打包命令,會在每個子模組中,生成打包後的檔案
[java] view plain copy
- * 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檔案加入依賴
[xml] view plain copy
- <dependency>
- <groupId>com.dianping.cat</groupId>
- <artifactId>cat-core</artifactId>
- <version>1.3.6</version>
- </dependency>
[xml] view plain copy
- <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.加入監控邏輯
[java] view plain copy
- @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為專案名)