一、概念解釋
1、全鏈路追蹤監控的核心概念---調用鏈。
2、定義:從請求源頭(前端頁面、移動端)到最后的底層服務(比如DB、Redis)的所有中間調用環節。
3、常見全鏈路監控工具對比
除了上述幾種全鏈路監控工具,還有skywalking等,但不同工具各自的優缺點不同,還需要根據技術團隊的技術特點和需求合理選型。
二、全鏈路監控特質
1、低侵入性
監控系統應盡可能減少對業務系統的侵入,保持對使用方的透明性,減少開發人員的負擔,降低接入門檻和難度。
2、低性能影響
由於全鏈路監控系統需要對各種應用中間件進行日志數據采集,大多都需要在業務系統內進行“埋點”或放置agent,一般都是在核心業務流程。
因此應盡可能降低對業務系統造成的性能影響,一般來說,對CPU的耗用低於2%可以作為一個參考閾值。
3、靈活全面的接入策略
為了盡可能降低接入成本,應該提供靈活的監控配置策略,讓業務方決定是否接入,以及收集數據的范圍和粒度,並提供對應的技術方案保障監控策略生效。
4、時效性
實時有效的監控數據展示功能,幫助相關人員理解系統行為,為流程、架構、代碼優化,以及擴容縮容、服務限流降級提供正確客觀的數據參考。
三、注意事項
1、異步調用
通過java字節碼增強方式植入增強邏輯, 通過對JDK線程(Thread)對象進行增強完成。
2、提高日志輸出的技術方案
在應用服務器開辟專門的內存區域,虛擬為虛擬磁盤,日志輸出采樣通過異步方式寫入磁盤,當日志量過大(設定閾值)時丟棄日志,並Count丟棄的日志。
步驟:達到采樣條件,產生日志並記錄;批量日志數滿足條件,寫入I/O緩沖區(Buffer);等待緩沖區滿,寫入存儲塊設備。
3、采樣率&TP數
采樣率:每N次調用采集一次數據,極大降低采集的日志數量;
TP數:記錄每次調用的TP值,便於技術TP50%、TP99%的指標;
PS:關於TP50/TP99,可參考這里:指標數據TP55、TP90、TP99、TP999
四、擴展知識
基於全鏈路監控的思想出現了很多新的知識,比如說:APM。
1、定義:APM(Application Performance Management)對應用程序性能和可用性的監控管理。
2、說明:狹義上的APM:單指應用程序的監控,如應用的各接口性能和錯誤監控,分布式調用鏈路跟蹤,以及其他各類用於診斷(內存,線程等)的監控信息等。
廣義上的APM:除了應用層的監控意外,還包括手機App端監控,頁面端監控,容器、服務器監控,以及其他平台組件如中間件容器,數據庫等層面的監控。