CAT 是一個實時和接近全量的監(jiān)控系統(tǒng),它側重于對Java應用的監(jiān)控,基本接入了美團上海所有核心應用。目前在中間件(MVC、RPC、數(shù)據庫、緩存等)框架中得到廣泛應用,為美團各業(yè)務線提供系統(tǒng)的性能指標、健康狀況、監(jiān)控告警等。
海南州ssl適用于網站、小程序/APP、API接口等需要進行數(shù)據傳輸應用場景,ssl證書未來市場廣闊!成為創(chuàng)新互聯(lián)的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18980820575(備注:SSL證書合作)期待與您的合作!
準備一個tomcat,修改 tomcat conf 目錄下 server.xml,防中文亂碼。
Connector port="8080" protocol="HTTP/1.1"
URIEncoding="utf-8" connectionTimeout="20000"
redirectPort="8443" />
Linux
mkdir /data
chmod -R 777 /data/
Windows
對程序運行盤下的/data/appdatas/cat和/data/applogs/cat有讀寫權限。例如cat服務運行在e盤的tomcat中,則需要對e:/data/appdatas/cat和e:/data/applogs/cat有讀寫權限。
此配置文件的作用是所有的客戶端都需要一個地址指向CAT的服務端。
下載cat源碼包:https://codeload.github.com/dianping/cat/
解壓后,數(shù)據庫的腳本文件為 script/CatApplication.sql
MySQL -uroot -Dcat < CatApplication.sql
3
1s
10m
1000
com.mysql.jdbc.Driver
root
root
官方下載:http://unidal.org/nexus/service/local/repositories/releases/content/com/dianping/cat/cat-home/3.0.0/cat-home-3.0.0.war
重命名為cat.war進行部署,注意此war是用jdk8,服務端請使用jdk8版本
提交后,重啟tomcat,訪問http://127.0.0.1:8080/cat,出現(xiàn)如下界面,說明搭建成功。
進入cat源碼包的 lib/java/jar ,將cat-client-3.0.0.jar 包 安裝到本地maven倉庫。
mvn install:install-file -DgroupId=com.dianping.cat -DartifactId=cat-client Dversion=3.0.0 -Dpackaging=jar -Dfile=cat-client-3.0.0.jar
創(chuàng)建一個springboot 工程,關鍵代碼如下。
org.springframework.boot
spring-boot-starter-web
com.dianping.cat
cat-client
3.0.0
需要在你的項目中創(chuàng)建 src/main/resources/META-INF/app.properties 文件, 并添加如下內容:
app.name={appkey}
appkey 只能包含英文字母 (a-z, A-Z)、數(shù)字 (0-9)、下劃線 (_) 和中劃線 (-)
server:
port: 8760
spring:
application:
name: cat-simple
@SpringBootApplication
@RestController
public class CatSimpleApplication {
public static void main(String[] args) {
SpringApplication.run( CatSimpleApplication.class, args );
}
@PostMapping("/hi")
public String hi(HttpServletRequest request){
String url = request.getRequestURL().toString();
// 創(chuàng)建一個 Transaction
Transaction transaction = Cat.newTransaction( "URL", url );
try {
// 處理業(yè)務
myBusiness();
// 設置狀態(tài)
transaction.setStatus(Transaction.SUCCESS);
} catch (Exception e) {
// 設置錯誤狀態(tài)
transaction.setStatus(e);
// 記錄錯誤信息
Cat.logError(e);
} finally {
// 結束 Transaction
transaction.complete();
}
return "hello";
}
@PostMapping("/error")
public String error(HttpServletRequest request){
String url = request.getRequestURL().toString();
// 創(chuàng)建一個 Transaction
Transaction transaction = Cat.newTransaction( "URL", url );
try {
// 處理業(yè)務
int i = 1 / 0;
// 設置狀態(tài)
transaction.setStatus(Transaction.SUCCESS);
} catch (Exception e) {
// 設置錯誤狀態(tài)
transaction.setStatus(e);
// 記錄錯誤信息
Cat.logError(e);
} finally {
// 結束 Transaction
transaction.complete();
}
return "500";
}
private void myBusiness() {
//模擬業(yè)務處理的時間
try {
Thread.sleep( 500 );
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
請求 http://localhost:8760/hi
curl -X POST http://localhost:8760/hi
請求 http://localhost:8760/error
curl -X POST http://localhost:8760/error
進入 cat 控制臺,點擊 Transaction 按鈕 ,之后點擊全部,會看到有哪些客戶端,如圖:
點擊客戶端 cat-simple ,出現(xiàn)如圖:
如上圖,可以清晰的看到 請求的 總個數(shù)(tatal)、均值(avg)、最大/最?。╩ax/min)、標準差(std)等,其他都比較直觀,標準差稍微復雜一點,大家自己可以推演一下怎么做增量計算。那集合運算,比如95線(表示95%請求的完成時間)、999線(表示99.9%請求的完成時間)
點擊 “l(fā)og View” 可以查看 錯誤信息,如圖:
https://github.com/gf-huanchupk/SpringCloudLearning/tree/master/chapter14
https://github.com/dianping/cat/wiki
歡迎關注我的公眾號《程序員果果》,關注有驚喜~~