點評cat編譯和基本使用

Cat介紹

Cat是一個彙總格式化日誌的產品,他是大衆點評的開源項目。java

他的提供了本身的一套jar包,提供了記錄日誌的api,咱們寫代碼的時候想對異常的處理整理記錄以及想記錄的sql執行時間、一個相關數據的統計等等,均可以依靠他的api來作。git

 注:以上的定義是我本身用過產品後,本身的認識github

編譯參考

https://github.com/dianping/catsql

編譯必須用jdk6,雖然上面說增長了對jdk8的支持,可是編譯到最後仍然會有問題,因此選擇jdk6api

Agent項目沒有編譯,也確實不須要編譯,最後確實沒有用到這個工程。tomcat

使用手冊(網站上給的使用手冊不全)app

這裏補充原先文檔上不足或者有歧義的地方分佈式

原來的文檔上沒說,怎麼把東西放到tomcat上,實際上不是agent什麼的,而是編譯出的那個war包,就是最後執行的時候在jetty上跑的那個應用,咱們須要把那個war包更名爲cat部署到tomcat上便可。多節點配置原來的文檔沒有問題。測試

客戶端主要功能

Transaction用來記錄一段程序響應時間(時間)網站

Event用來記錄一行code的執行次數(次數)

Metric用來記錄一個業務指標

提供了3api

logMetricForCount用於記錄一個指標值出現的次數

logMetricForDuration用於記錄一個指標出現的平均值

logMetricForSum用於記錄一個指標出現的總和

他的模型是你的tomcat上部署的war包重點是用來查看結果信息的,你使用了他的api編寫的程序是信息的發送者,默認發消息是給本地的tomcat上的cat,多個cat之間能夠作分佈式,查看遠程的計算機的監控狀況。

demo

他自帶的test下有相關的測試代碼,網上都讓看TestStorageMessage這個類。

寫程序的時候記得導入相應的jar包,jar包在war包的lib目錄下。在META-INF(普通的java程序,本身在src下創建目錄)下,新建app.properties文件,寫入app.name=cat。

 public static void main(String[] args) {
  Transaction t = Cat.newTransaction("my", "sql");//這裏記錄到transaction的時間,一直到complete
  Cat.logEvent("sqlx", "sql");
  Cat.logEvent("sqlx", "sql2");//這裏記錄次數
  Cat.logEvent("sqlx", "sql3");
  try{
   int a=10;
   Cat.logMetricForCount("num a", a);
   
   a=10/0;
   
   t.setStatus(Transaction.SUCCESS);
  }catch(Exception e){
   t.setStatus(e);
  }finally{
   t.complete();
  }
  
 }

嘗試執行這段代碼,執行以後你就能夠看到transaction和event裏有你的記錄了,具體的功能看上面的介紹,或者看工程裏自帶的開發者文檔。

注:app.name=cat,此處指定的cat是你url裏訪問的cat,若是你修改了名字,請更換url裏的名字,war包裏默認的就是cat的名字,你用cat的話,就能夠直接刷出信息。

相關文章
相關標籤/搜索