淺談全鏈路監控


在性能測試領域,近幾年全鏈路壓測可以說是越來越火熱,但據我了解,真正玩得轉的,就那么幾家知名的大廠或者有大廠背景的公司。

原因無非這幾點:越發復雜的業務和龐大的數據量倒逼技術,以及技術建設到了一定程度需要創造更多的價值。之前的博客也介紹過,

傳送門:聊聊全鏈路壓測再談全鏈路壓測

而伴隨全鏈路壓測一路成長但不為大多數測試童鞋所知的,還有全鏈路監控這篇博客,簡單介紹下關於全鏈路監控的一些知識。。。

 

一、基礎知識

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端監控,頁面端監控,容器、服務器監控,以及其他平台組件如中間件容器,數據庫等層面的監控。

 

以上內容只是個人總結記錄的筆記,僅供參考。。。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM