1. 程式人生 > >系統監控-分散式呼叫鏈Skywalking

系統監控-分散式呼叫鏈Skywalking

1. 為什麼要使用分散式呼叫鏈技術?

隨著公司業務的高速發展,公司服務之間的呼叫關係愈加複雜,如何理清並跟蹤它們之間的呼叫關係就顯的比較關鍵。線上每一個請求會經過多個業務系統,併產生對各種快取或者 DB 的訪問,但是這些分散的資料對於問題排查,或者流程優化提供的幫助有限。在這樣複雜的業務場景下,業務流會經過很多個微服務的處理和傳遞,我們難免會遇到這些問題:

  • 一次請求的流量從哪個服務而來最終落到了哪個服務中去
  • 為什麼這個請求這麼慢? 到底哪個環節出了問題?
  • 這個操作需要依賴哪些東西? 是資料庫還是訊息佇列?
  • Redis掛了,哪些業務受影響?

2. 開源產品從多,可以從如下幾個方面去選型。

我們需要達到的目標:

  • 低消耗性:跟蹤系統對業務系統的影響應該做到足夠小。在一些高度優化過的服務,即使一點點損耗也容易察覺到,而且有可能迫使線上負責的部署團隊不得不將跟蹤系統關停
  • 低侵入性:作為非業務元件,應當儘可能少侵入或者無侵入業務系統,對於使用方透明,減少開發人員的負擔
  • 時效性:從資料的收集產生,到資料計算處理,再到最終展現,都要求儘可能快
  • 決策支援:這些資料是否能在決策支援層面發揮作用,特別是從 DevOps 的角度
  • 資料視覺化:做到不用看日誌通過視覺化進行篩選

實現的功能:

  • 故障定位:呼叫鏈路跟蹤,一次請求的邏輯軌跡可以完整清晰的展示出來
  • 效能分析:呼叫鏈的各個環節分別新增呼叫耗時,可以分析出系統的效能瓶頸,並針對性的優化
  • 資料分析:呼叫鏈是一條完整的業務日誌,可以得到請求的行為路徑,彙總分析應用在很多業務場景。

開源產品:

  • Twitter 公司開源的分散式追蹤系統 Zipkin 
  • 韓國人開源的分散式跟蹤元件 Pinpoint
  • 國產的優秀APM元件 Skywalking,
  • 其他類似的元件還有美團點評的 CAT。

分散式呼叫鏈和傳統的新能監控有什麼區別?

APM工具與傳統的效能監控工具的區別在於,不僅僅提供一些零散的資源監控點和指標,其主要關注在系統內部執行、系統間呼叫的效能瓶頸分析,這樣更有利於定位到問題的具體原因。

社群活躍度:

類別

Zipkin

Pinpoint

SkyWalking

CAT

start小星星數

9.7k

7.5k

4.7k

6.7k

效能分析: 

3. 綜上多個方面最終選擇Skywalking,搭建方式參考如下:

....