天天看點

鍊路追蹤 - SkyWalking1. 概述2. 下載下傳3. 與項目整合

1. 概述

随着業務的發展,單體架構變為微服務架構,并且系統規模也變得越來越大,各微服務間的調用關系也變得越來越複雜

在微服務的應用中,一個由用戶端發起的請求在後端系統中會經過多個不同的微服務調用來協同産生最後的請求結果

來看一張淘寶2012年的核心鍊路應用拓撲圖:

鍊路追蹤 - SkyWalking1. 概述2. 下載下傳3. 與項目整合

這個時候如果在上述的某一條鍊路中發生了錯誤,我們要如何快速的定位到錯誤所在的鍊路和相關的服務

在複雜的微服務架構系統中,幾乎每一個前端請求都會形成一個複雜的分布式服務調用鍊路,在每條鍊路中任何一個依賴服務出現延遲逾時或者錯誤都有可能引起整個請求最後的失敗

要解決上述的問題,就需要用到服務鍊路追蹤

微服務跟蹤其實是一個工具,它在整個分布式系統中能跟蹤一個使用者請求的過程(包括資料采集,資料傳輸,資料存儲,資料分析,資料可視化),捕獲這些跟蹤資料,就能建構微服務的整個調用鍊的視圖,這是調試和監控微服務的關鍵工具

本次整合的 SkyWalking 是一個國産的開源架構,具體的介紹大家可以去網上搜,或者看下面的這篇文章:https://www.jianshu.com/p/ffa7ddcda4ab

2. 下載下傳

官網:https://skywalking.apache.org/downloads/

鍊路追蹤 - SkyWalking1. 概述2. 下載下傳3. 與項目整合

下載下傳後的檔案夾如下:

鍊路追蹤 - SkyWalking1. 概述2. 下載下傳3. 與項目整合

3. 與項目整合

3.1 項目内操作

在項目中建立一個目錄(名字無要求),将 agent 整個目錄拷貝進來,如下圖:

鍊路追蹤 - SkyWalking1. 概述2. 下載下傳3. 與項目整合

修改項目的 VM 運作參數

注意:

  • 以下的運作參數,要在你所有的服務啟動類上添加
  • 但是 -Dskywalking.agent.service_name 的名字是你微服務的名字
-javaagent:上圖中 skywalking-agent.jar 的絕對路徑 
-Dskywalking.agent.service_name =微服務的名字
-Dskywalking.collector.backend_service =localhost:11800
           

啟動項目,如果能看見下面的日志輸出,則表示成功

鍊路追蹤 - SkyWalking1. 概述2. 下載下傳3. 與項目整合

3.2 項目外操作

此時進入你的 skyWalking 的安裝目錄,啟動以下的bat檔案,才能進入UI界面

鍊路追蹤 - SkyWalking1. 概述2. 下載下傳3. 與項目整合

UI界面的端口預設是8080,在 /webapp/ webapp.yml 可以進行修改

鍊路追蹤 - SkyWalking1. 概述2. 下載下傳3. 與項目整合
鍊路追蹤 - SkyWalking1. 概述2. 下載下傳3. 與項目整合

啟動服務,小黑屏上是沒有任何輸出的,隻要能看見下圖界面,則意味啟動成功

鍊路追蹤 - SkyWalking1. 概述2. 下載下傳3. 與項目整合

進入UI界面:http://localhost:8080/ (進入UI 界面後的初始界面)

鍊路追蹤 - SkyWalking1. 概述2. 下載下傳3. 與項目整合

點選上圖示注的自動重新整理後,然後進行請求就會出現對應的監控資料

鍊路追蹤 - SkyWalking1. 概述2. 下載下傳3. 與項目整合

也可以看自己項目的拓撲結構圖

鍊路追蹤 - SkyWalking1. 概述2. 下載下傳3. 與項目整合

其他圖表的分析,可以看其他的相關文章:

  • https://blog.csdn.net/snail_bi/article/details/102525736
  • https://chenyongjun.vip/articles/140
  • https://blog.csdn.net/dyangel2013/article/details/119183626

當出現錯誤時,可以在拓撲圖看到發生錯誤的服務,也可以追蹤中看到具體的消息

鍊路追蹤 - SkyWalking1. 概述2. 下載下傳3. 與項目整合
鍊路追蹤 - SkyWalking1. 概述2. 下載下傳3. 與項目整合