接下來編寫一個簡單的springboot與Cat整合的案例
1 新建springboot項目
首先創建一個Spring Boot的初始化工程。只需要勾選web依賴即可。
?
2 添加 Maven 添加依賴
<dependency><groupId>com.dianping.cat</groupId><artifactId>cat-client</artifactId><version>3.0.0</version></dependency>
這個maven上沒有,需要通過源碼install到本地maven,或者去官網下載后手動安裝的本地maven
源碼安裝如下:
3 啟動 cat 客戶端前的準備工作
以下所有文件,如果在windows下,需要創建在啟動項目的盤符下。
(1)創建 /data/appdatas/cat 目錄
????????確保你具有這個目錄的讀寫權限。
(2)創建 /data/applogs/cat 目錄 (可選)
????????這個目錄是用于存放運行時日志的,這將會對調試提供很大幫助,同樣需要讀寫權限。
(3)創建 /data/appdatas/cat/client.xml ,內容如下
<?xml version="1.0" encoding="utf-8"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema" xsi:noNamespaceSchemaLocation="config.xsd"><servers><server ip="192.168.222.153" port="2280" http-port="8080" /></servers>
</config>
?
4 初始化
在你項目中創建 src/main/resources/META-INF/app.properties 文件, 并添加如下內容:
app.name={appkey}
appkey 只能包含英文字母 (a-z, A-Z)、數字 (0-9)、下劃線 (_) 和中劃線 (-)?
5 編寫代碼
在com.example.demo.controller包下創建CatController
package com.example.demo.controller;import com.dianping.cat.Cat;
import com.dianping.cat.message.Event;
import com.dianping.cat.message.Transaction;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
public class CatController {@RequestMapping("test")public String test(){Transaction t = Cat.newTransaction("URL", "pageName");try {Cat.logEvent("URL.Server", "serverIp", Event.SUCCESS, "ip=192.168.222.153");Cat.logMetricForCount("metric.key");Cat.logMetricForDuration("metric.key", 5);//讓代碼拋出異常int i = 1/0;t.setStatus(Transaction.SUCCESS);} catch (Exception e) {t.setStatus(e);Cat.logError(e);} finally {t.complete();}return "hello cat";}
}
6 運行SpringBoot
啟動SpringBoot項目,訪問接口 http://[ip:端口]/test。然后在Cat中查看結果。
?
如上圖所示,已經出現了一筆調用,我們來看下調用的細節。
查看具體的錯誤信息:
很顯然看出上圖所示其實是一個除0異常,到此為止SpringBoot客戶端集成Cat就完成了。?
?