SkyWalking鏈路追蹤系統


前言

在微服務開發如火如荼的今天,微服務也引入了一些額外問題。微服務開發&運維過程中會經常調用到其他服務暴露的接口,項目足夠大時,內部調用會非常復雜,這種復雜性會導致很難去定位問題,出現問題的時候容易互相推諉進而導致效率低下,所以需要在微服務構建的系統中引入服務調用鏈路追蹤工具,方便開發人員快速定位問題。

解決方案對比

目前市面上比較流行的鏈路追蹤工具有Zipkin、CAT、Pinpoint、SkyWalking等等

簡單介紹

  • Zipkin是Twitter開源的調用鏈分析工具,目前基於SpringCloud Sleuth得到了廣泛的使用,輕量,使用部署簡單。
  • SkyWalking是本土開源的基於字節碼注入的調用鏈分析,以及應用監控分析工具。特點是支持多種插件,UI友好,非侵入式接入。目前已加入Apache孵化器。
  • CAT是大眾點評開源的基於編碼和配置的調用鏈分析,應用監控分析,日志采集,監控報警等一系列的監控平台工具。
  • Pinpoint是韓國開源的基於字節碼注入的調用鏈分析,以及應用監控分析工具。特點是支持多種插件,UI功能強大,接入端無代碼侵入。

對比

截止至2020/04/20

類別 SkyWalking CAT Zipkin Pinpoint
可視化界面
報表 豐富 很豐富 近似於無
接入方式 非侵入式 侵入式 侵入式 非侵入式
UI是否友好
顆粒度 方法級 代碼級 接口級 方法級
數據存儲 ES,H2 mysql,hdfs ES,mysql,Cassandra,內存 Hbase
社區活躍度 13.1k star 13.1k star 12.7k star 10.2k star
實現方式 攔截請求,發送(HTTP,mq)數據至zipkin服務 java探針,字節碼增強 java探針,字節碼增強 代碼埋點(攔截器,注解,過濾器等)

下載

ElasticSearch7 API變更比較多,故官網拆分出兩個包,可根據ElasticSearch版本選擇下載
下載頁
SkyWalking 7.0.0
SkyWalking 7.0.0-ES7版本

所有歷史版本

安裝&啟動

  1. 將下載好的壓縮包解壓至用戶目錄

  2. 修改config/application.yml修改配置,由於我本地安裝的是ES7版本,故將儲存引擎由默認的H2修改為ElasticSearch7

  3. 啟動SkyWalking之前確保ElasticSearch服務啟動成功,然后執行oapService.bat(linux下執行oapService.sh)再執行webappService.bat(webappService.sh),或者直接執行startup.bat(startup.sh)

  4. 確保啟動無誤之后瀏覽器訪問localhost:8080)

端口可在webapp/webapp.yml中修改

Java接入

將skywalking根目錄下的agent目錄拷貝至用戶目錄,新建一個spring-boot項目,
在啟動JVM參數中添加以下配置

-javaagent:D:\Apache-Skywalking\agent\skywalking-agent.jar
-Dskywalking.agent.service_name=你的項目名

啟動項目,並訪問一個接口可以看到如下拓撲圖

本地新建了一個服務,如果是微服務項目服務間調用會非常明顯的展示出來

SkyWalking UI簡單介紹

性能監控圖標

JVM信息

鏈路追蹤


免責聲明!

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



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