原創(chuàng)不容易,請多多支持。對Java技術感興趣的童鞋請關注我。后續(xù)會將陸續(xù)進行各種Java技術文章的發(fā)布。
概述
最近公司項目中,java后端應用引入了開源的cat監(jiān)控系統(tǒng)。使用下來感覺不錯,整理匯總了cat的常用功能和項目集成。提供給有監(jiān)控需求的小伙伴,希望能有所幫助。
Cat架構介紹
Cat是基于 Java 開發(fā)的實時應用監(jiān)控平臺,為美團點評提供了全面的實時監(jiān)控告警服務。
作為服務端項目基礎組件,提供了 Java, C/C++, Node.js, Python, Go 等多語言客戶端,已經(jīng)在美團點評的基礎架構中間件框架(MVC框架,RPC框架,數(shù)據(jù)庫框架,緩存框架等,消息隊列,配置系統(tǒng)等)深度集成,為美團點評各業(yè)務線提供系統(tǒng)豐富的性能指標、健康狀況、實時告警等。
很大的優(yōu)勢是它是一個實時系統(tǒng),CAT 大部分系統(tǒng)是分鐘級統(tǒng)計,但是從數(shù)據(jù)生成到服務端處理結束是秒級別,秒級定義是48分鐘40秒,基本上看到48分鐘38秒數(shù)據(jù),整體報表的統(tǒng)計粒度是分鐘級;第二個優(yōu)勢,監(jiān)控數(shù)據(jù)是全量統(tǒng)計,客戶端預計算;鏈路數(shù)據(jù)是采樣計算。
以上是cat官網(wǎng)介紹,詳情請訪問
cat是侵入式的監(jiān)控系統(tǒng),需要項目應用集成client jar文件。在業(yè)務代碼中調(diào)用api代碼埋點監(jiān)控數(shù)據(jù)。這種方式,優(yōu)勢是靈活、可定制業(yè)務監(jiān)控,劣勢是代碼侵入性。對較統(tǒng)一的系統(tǒng)技術棧公司,總的來說還是利大于弊的。
客戶端設計
埋點的clinet會通過業(yè)務埋點,在當前Http Thread線程中構造埋點類型消息,然后放入線程上下文,當整個埋點的消息樹構造完成,把消息扔到內(nèi)存隊列,通過多線程異步把消息,通過socket 發(fā)送到cat server端(消息傳輸使用了netty框架)。client端為不影響集成的業(yè)務系統(tǒng)性能,經(jīng)過大量測試,做了很多優(yōu)化。對集成業(yè)務系統(tǒng)的機器資源占用較小,官方認為完全可以忽略這部分client的性能損耗。
服務端設計
服務端通過netty監(jiān)聽到消息后,通過多線程把消息分發(fā)到不同的消息分析器中處理,每個消息分析器也都有自己的消息內(nèi)存隊列,便于高效快速的異步消費處理。處理完成的數(shù)據(jù)有兩類。一類統(tǒng)計報表數(shù)據(jù),直接放到mysql數(shù)據(jù)庫中。一類監(jiān)控日志數(shù)據(jù),放到本地磁盤或者hdfs中。
監(jiān)控模型
- Transaction 適合記錄跨越系統(tǒng)邊界的程序訪問行為,比如遠程調(diào)用,數(shù)據(jù)庫調(diào)用,也適合執(zhí)行時間較長的業(yè)務邏輯監(jiān)控,Transaction用來記錄一段代碼的執(zhí)行時間和次數(shù)
- Event 用來記錄一件事發(fā)生的次數(shù),比如記錄系統(tǒng)異常,它和transaction相比缺少了時間的統(tǒng)計,開銷比transaction要小
- Heartbeat 表示程序內(nèi)定期產(chǎn)生的統(tǒng)計信息, 如CPU利用率, 內(nèi)存利用率, 連接池狀態(tài), 系統(tǒng)負載等
- Metric 用于記錄業(yè)務指標、指標可能包含對一個指標記錄次數(shù)、記錄平均值、記錄總和,業(yè)務指標最低統(tǒng)計粒度為1分鐘
介紹完架構設計,來看看cat監(jiān)控管理系統(tǒng)的使用,大家先有一個直觀的認識。
cat server端基于tomcat部署,部署完成通過以下地址訪問。
其中ip和端口按具體場景修改。
選擇監(jiān)控應用
選擇不同應用,切換對應應用監(jiān)控。
報表時間選擇
Transaction報表
以上為不同type的報表數(shù)據(jù)統(tǒng)計。選擇某個type,如URL,查看type下的item報表。
以上報表列出了監(jiān)控url請求的相關統(tǒng)計報表,如訪問總數(shù),失敗總數(shù),平均響應時間,95基線的平均響應時間(去除網(wǎng)絡抖動等原因?qū)е碌漠惓?shù)據(jù)。好比跳舞比賽中,裁判會去掉評委給的一個最高分和最低分,取平均給到一個選手最終評分,剔除大的異常情況才能得出一個相對公平的結果)。
點擊某個url對應的log view鏈接,可以查看該url訪問的log信息采樣。
Event報表
event報表為業(yè)務次數(shù)埋點的統(tǒng)計報表。
Problem報表
problem報表主要涉及錯誤統(tǒng)計(應用報錯、sql報錯等)、系統(tǒng)heartbeat(監(jiān)控應用機器資源統(tǒng)計)、性能統(tǒng)計(耗時url、耗時sql等)幾類信息。做系統(tǒng)優(yōu)化和問題故障排查,通過problem報表定位非常方便。
感謝你的閱讀,下一篇將介紹項目中如何集成cat client。有興趣請關注我。謝謝!
1.《Cat監(jiān)控使用介紹》援引自互聯(lián)網(wǎng),旨在傳遞更多網(wǎng)絡信息知識,僅代表作者本人觀點,與本網(wǎng)站無關,侵刪請聯(lián)系頁腳下方聯(lián)系方式。
2.《Cat監(jiān)控使用介紹》僅供讀者參考,本網(wǎng)站未對該內(nèi)容進行證實,對其原創(chuàng)性、真實性、完整性、及時性不作任何保證。
3.文章轉(zhuǎn)載時請保留本站內(nèi)容來源地址,http://f99ss.com/gl/2106368.html