天天看點

引入skywalking說明

問題

目前sfa系統穩定性低,有些請求處理比較慢,每天大于兩秒的請求有上千個,優化的時候隻能靠猜測

目前迫切需要一款追蹤工具對系統問題進行監控,對系統問題進行診斷

使用全鍊路追蹤的必要性

請求鍊路追蹤,故障快速定位:可以通過調用鍊結合業務日志快速定位錯誤資訊。

可視化: 各個階段耗時,進行性能分析。

依賴優化:各個調用環節的可用性、梳理服務依賴關系以及優化。

資料分析,優化互動。

  • 目前分布式鍊路追蹤系統基本都是根據谷歌的《Dapper大規模分布式系統的跟蹤系統》這篇論文發展而來,主流的有zipkin,pinpoint,skywalking,cat。
  • SkyWalking 文檔中文版
  • pinpoint git
SkyWalking是本土開源的基于位元組碼注入的調用鍊分析,以及應用監控分析工具。特點是支援多種插件,UI功能較強,接入端無代碼侵入。目前已加入Apache孵化器。
  • pinpoint git io
Pinpoint是南韓人開源的基于位元組碼注入的調用鍊分析,以及應用監控分析工具。特點是支援多種插件,UI功能強大,接入端無代碼侵入。
  • zipkin
Zipkin是Twitter開源的調用鍊分析工具,目前基于springcloud sleuth得到了廣泛的使用,特點是輕量,使用部署簡單。
  • cat
CAT是大衆點評開源的基于編碼和配置的調用鍊分析,應用監控分析,日志采集,監控報警等一系列的監控平台工具。
類别 Zipkin Pinpoint SkyWalking CAT
實作方式 攔截請求,發送(HTTP,mq)資料至zipkin服務 java探針,位元組碼增強 java探針,位元組碼增強 代碼埋點(攔截器,注解,過濾器等)
  • 因為zipkin和cat對代碼有一定的侵入性,系統改造成本高,有比較高的風險。
  • 而pinpoint和skywalking都是基于位元組碼注入技術,可以做到完全的代碼無侵入。對現有系統的改造極小。
  • skywalking agent系統負載比pinpoint更小一點 , 支援可插拔配置,存儲方式更加靈活,功能更加完備,接口診斷粒度更細

我個人認為 skywalking更強的地方

  • 線程剖析 粒度比pinpoint更細,可以攔截指定端點(url)指定時間的資料進行線程剖析
  • 記錄了fullgc次數
  • 獨立的慢sql記錄
  • 實作opentace協定,相容多種采集方式
  • 報警配置更加靈活

落地方案

  • skywalking 分 用戶端,采集端,web服務 ,用戶端需要添加應用程式啟動參數中。
  • 采集端和web端部署到同一台服務上,最少4g記憶體,最少40g磁盤,可以設定 1/10采集減輕負載
  • 叢集部署 ( zookeeper + server)* 3 8g記憶體 100g磁盤
  • 存儲 可選mysql hdfs,es 試點服務可以搭建單節點es服務,資料可不用分片,資料預設存儲7天,最低要求 8g記憶體200g磁盤
  • 叢集部署 ( es)* 3 16g記憶體 1T磁盤
叢集方案可以同時對整個活動系統進行監控

參考

監控系統比較 Skywalking Pinpoint Cat zipkin
Zipkin,Pinpoint,SkyWalking,CAT
skywalking pinpoint詳細比較

繼續閱讀