APM監(jiān)控之CAT集成

CAT是 點(diǎn)評(píng)開源的綜合性的監(jiān)控平臺(tái),要包括移動(dòng)端監(jiān)控,應(yīng)用側(cè)監(jiān)控,核心網(wǎng)絡(luò)層監(jiān)控,系統(tǒng)層監(jiān)控等。并能提供實(shí)時(shí)監(jiān)控報(bào)警,應(yīng)用性能分析診斷的工具。

目前最新版本是18年10月剛升級(jí)的2.0版本,從網(wǎng)上搜羅的資料文檔都比較模糊,包括官方文檔也沒(méi)有實(shí)時(shí)更新,給搭建平臺(tái)造成了不必要的麻煩。因此根據(jù)自己的摸索實(shí)踐,將平臺(tái)搭建的每一步都截圖細(xì)化下來(lái),保證搭建順利。
本次搭建在windows環(huán)境下,具體環(huán)境如下:
java version "1.8.0_31"
Apache Maven 3.5.4
apache-tomcat-8.0.9
Mysql 5.7+
IDEA 2018

操作步驟如下:

1. 源代碼下載

登陸碼云或者github把CAT代碼down到本地,碼云下載地址:https://gitee.com/mirrors/CAT/tags,本次下載選用紅色框標(biāo)記的部分

圖片.png

2. 代碼導(dǎo)入idea

導(dǎo)入后maven會(huì)自動(dòng)下載相關(guān)依賴,導(dǎo)入后效果如下:


圖片.png

3. 初始化數(shù)據(jù)庫(kù)并修改配置文件

  • CAT數(shù)據(jù)存儲(chǔ)于MySQL數(shù)據(jù)庫(kù)script文件夾下面的Cat.sql 導(dǎo)入Mysql 數(shù)據(jù)庫(kù),版本要求5.7+
  • 修改datasources.xml配置文件,將數(shù)據(jù)庫(kù)鏈接替換成自己的數(shù)據(jù)庫(kù)配置


    圖片.png

4. 源代碼編譯

點(diǎn)擊如下圖所示按鈕,并輸入命令
clean install -Dmaven.test.skip=true
編譯打成war包

圖片.png

5. war包部署

將編譯后的war包部署到tomcat 下,注意:暫不啟動(dòng)

6. 本地配置文件創(chuàng)建

在項(xiàng)目部署所在目錄的根目錄創(chuàng)建/data/appdatas/cat文件夾,例如我項(xiàng)目部署在C:\tools\apache-tomcat-8.0.9,那么創(chuàng)建好的目錄結(jié)構(gòu)就應(yīng)該是:C:\data\appdatas\cat
并將script文件夾中的3個(gè)xml配置文件復(fù)制粘貼到剛創(chuàng)建好的目錄下

7. 啟動(dòng)tomcat并測(cè)試

若顯示如下畫面,表示服務(wù)端配置成功


圖片.png

下面是CAT 客戶端集成步驟:
本次集成工程為spring boot2 工程,集成步驟如下:

  • 集成POM文件
    在pom.xml中引入CAT 客戶端包
    <dependency> <groupId>com.dianping.cat</groupId> <artifactId>cat-client</artifactId> <version>2.0.0</version> </dependency>
    若maven編譯不通過(guò),找不到該包,則需要手動(dòng)安裝到本地,手動(dòng)安裝步驟為
    1.去idea 圖片目錄找到cat-client-2.0.0.jar ,并復(fù)制到本地目錄
    圖片.png
2.進(jìn)入到j(luò)ar包復(fù)制目錄的文件夾下面,并執(zhí)行
mvn install:install-file -DgroupId=com.dianping.cat -DartifactId=cat-client -Dversion=2.0.0 -Dpackaging=jar -Dfile=cat-client-2.0.0.jar
  • 官方文檔中只體現(xiàn)了集成spring mvc 客戶端的方式,現(xiàn)修改為spring boot 2的方式,方式如下:添加過(guò)濾器

/**
 * Cat 過(guò)濾器初始化
 */
public class CatFilterConfigure{
    @Bean
    public FilterRegistrationBean catFilter() {
        FilterRegistrationBean registration = new FilterRegistrationBean();
        CatFilter filter = new CatFilter();
        registration.setFilter(filter);
        registration.addUrlPatterns("/*");
        registration.setName("cat-filter");
        registration.setDispatcherTypes(DispatcherType.REQUEST,DispatcherType.FORWARD);
        registration.setOrder(1);
        return registration;
    }

}

  • 添加客戶端配置類,代碼如下:
    /**
 * Cat客戶端配置
 */
public class CatClientConfigProvider implements ClientConfigProvider {
    @Override
    public ClientConfig getClientConfig() {

        ClientConfig config = new ClientConfig();
        config.addServer(new Server("127.0.0.1"));
        config.addDomain(new Domain("Tunny"));

        return config;
    }

}

  • 添加resourece 目錄配置文件,目錄結(jié)構(gòu)及配置如下:


    圖片.png
  • 編寫客戶端埋點(diǎn)代碼,注釋寫的比較詳細(xì),代碼結(jié)構(gòu)如下:


    圖片.png
  • 啟動(dòng)客戶端服務(wù),并調(diào)用埋點(diǎn)所在Controller接口

  • 埋點(diǎn)效果測(cè)試,登陸cat服務(wù)端
    效果如下,表示客戶端與服務(wù)端通信正常


    圖片.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • 轉(zhuǎn)自陳明乾的博客,可能有一定更新。 轉(zhuǎn)原文聲明: 原創(chuàng)作品,允許轉(zhuǎn)載,轉(zhuǎn)載時(shí)請(qǐng)務(wù)必以超鏈接形式標(biāo)明文章 原始出處 ...
    LUNJINGJIE閱讀 4,002評(píng)論 1 33
  • feisky云計(jì)算、虛擬化與Linux技術(shù)筆記posts - 1014, comments - 298, trac...
    不排版閱讀 3,904評(píng)論 0 5
  • 最近讀了一個(gè)自己感覺(jué)關(guān)于用戶故事地圖很好的文章,并做了筆記,現(xiàn)在記錄下為以后的實(shí)踐做好基礎(chǔ)。文章出處:http:/...
    唐T唐X閱讀 319評(píng)論 0 1
  • 聽(tīng)聲音是在這棵樹附近。哪里有人啊?他抓抓耳朵,甚是費(fèi)解。 啊!終于有人,啊不,有同道中人聽(tīng)到我的呼救了。快救我,我...
    溫其言閱讀 308評(píng)論 0 0
  • 今天是第二屆黃埔馬拉松的日子! 早上7點(diǎn)半就起來(lái),早餐都不吃直接下樓去看了!湊熱鬧!但是因?yàn)榻裉焱蝗唤禍亓耍∷岳?..
    oXXC閱讀 188評(píng)論 0 1