服務質量可視化系統(tǒng)接入指南-C++
1.添加項目依賴
胡捷提供
靜態(tài)庫
libcatclient.a
和頭文件
gridVClient.h
頭文件
2.初始化cat
使用默認配置初始化 cppcat
cat::init
void init(const string& domain);
默認采用如下配置:
encoderType = CAT_ENCODER_BINARY.
enableHeartbeat is true.
enableSampling is true.
enableMultiprocessing is false.
enableDebugLog is false.
你也可以自定義配置(比如使用文本序列化取代二進制序列化)
cat::Config c = cat::Config();
c.enableDebugLog = true;
c.encoderType = cat::ENCODER_TEXT;
cat::init("appkey", c);
appkey 為自己業(yè)務系統(tǒng)的大寫字母簡稱,
要求只能包含英文字母 (a-z, A-Z)、數(shù)字 (0-9)、下劃線 (_) 和中劃線 (-)
3.添加client.xml文件
- 需要在接入應用源文件所有在盤符創(chuàng)建/apps/appdatas/cat目錄,并且確保目錄有讀寫權限
例如當前接入應用源文件存放在/E:/workspack/項目源文件 ,則需要在E盤根路徑創(chuàng)建/apps/appdatas/cat目錄
如果當前系統(tǒng)是Linux,則直接在/根目錄創(chuàng)建/apps/appdatas/cat 文件夾即可,確保文件可讀寫
2.創(chuàng)建client.xml,內容如下,其中10.16.41.232為服務端ip,根據(jù)環(huán)境配置即可,當前為測試環(huán)境:
<!-- mode : 定義配置模式,固定值為client;- -->
<config mode="client" xmlns:xsi="http://www.w3.org/2001/XMLSchema" xsi:noNamespaceSchemaLocation="config.xsd">
<servers>
<!-- 服務端地址, 端口固定-->
<!-- 如果有多個Server, 就繼續(xù)增加相應的節(jié)點配置 -->
<!-- ip : 配置服務端(cat-home)對外IP地址 -->
<!-- port : 配置服務端(cat-home)對外TCP協(xié)議開啟端口,固定值為2280; -->
<!-- http-port : 配置服務端(cat-home)對外HTTP協(xié)議開啟端口, 如:tomcat默認是8080端口,若未指定,默認為8080端口; -->
<server ip="10.16.41.232" port="2280" http-port="8888" />
</servers>
</config>
4.上報調用url規(guī)則
cat::Transaction t("URL", "url");
url : 請求全路徑(帶域名,但不帶?后面的參數(shù)),一定不要帶有可變參數(shù)
cat::Transaction t("URL", "url");
t.SetDurationStart(_cat_start);
t.SetTimestamp(_cat_start);
unsigned long scEnd = (Util::GetSystemClock() - 1000) / 1000;
t.SetDurationInMillis(scEnd-_cat_start);
t.AddData("rsp_code", Util::to_s(200));
t.SetStatus(cat::SUCCESS);
t.Complete();
5.調用鏈路數(shù)據(jù)上報
cat::Transaction t("type", "url");
url : 調用外部系統(tǒng)url,請求全路徑(帶域名,但不帶?后面的參數(shù)),一定不要帶有可變參數(shù)
type : CALLER_(固定字符串) + C4A (服務提供者系統(tǒng)簡稱.即要調用的服務系統(tǒng)標識,可參考高可用項目系統(tǒng)標識)
如果有調用外部系統(tǒng)需要在調用邏輯前后添加監(jiān)控埋點
在調用外部接口代碼前后添加監(jiān)控買點:
6.上報調用請求錯誤規(guī)則
cat::logEvent
void logEvent(const string& type, const string& name, const string& status = SUCCESS, const string& data = "");
錯誤類型格式:系統(tǒng)簡稱_+ 調用url
status:實際發(fā)生錯誤狀態(tài)碼