歡迎光臨
每天分享高質量文章

鏈路追蹤 SkyWalking 原始碼分析 —— 除錯環境搭建

點選上方“芋道原始碼”,選擇“設為星標

做積極的人,而不是積極廢人!

原始碼精品專欄

 

摘要: 原創出處 http://www.iocoder.cn/SkyWalking/build-debugging-environment/ 「芋道原始碼」歡迎轉載,保留摘要,謝謝!

本文主要基於 SkyWalking 3.2.6 正式版

  • 1. 依賴工具
  • 2. 原始碼拉取
  • 3. 啟動 SkyWalking Collector
  • 4. 啟動 SkyWalking Agent
  • 5. 啟動 SkyWalking Web UI
  • 6. 彩蛋

1. 依賴工具

  • Maven
  • Git
  • JDK
  • IntelliJ IDEA

2. 原始碼拉取

從官方倉庫 https://github.com/OpenSkywalking/skywalking Fork 出屬於自己的倉庫。為什麼要 Fork?既然開始閱讀、除錯原始碼,我們可能會寫一些註釋,有了自己的倉庫,可以進行自由的提交。?

使用 IntelliJ IDEA 從 Fork 出來的倉庫拉取程式碼。拉取完成後,Maven 會下載依賴包,可能會花費一些時間,耐心等待下。

本文基於 master 分支。

3. 啟動 SkyWalking Collector

參考 《官方檔案 —— How to build》

  1. 在 IntelliJ IDEA Terminal 中,執行 mvn compile -Dmaven.test.skip=true 進行編譯。

  2. 設定 gRPC 的自動生成的程式碼目錄,為原始碼目錄 :

    從 3.2 開始,網路通訊協議引入 GRPC ,所以增加上述的步驟

  • /apm-network/target/generated-sources/protobuf/ 下的 grpc-java 和 java 目錄
  • /apm-collector-remote/collector-remote-grpc-provider/target/generated-sources/protobuf/ 下的 grpc-java 和 java 目錄
  • 執行 org.skywalking.apm.collector.bootCollector.BootStartUp 的 #main(args) 方法,啟動 Collector 。

  • 訪問 http://127.0.0.1:10800/agent/jetty 地址,傳回 ["localhost:12800/"] ,說明啟動成功

4. 啟動 SkyWalking Agent

感謝 吳晟 指導如何搭建 Agent 除錯環境。

  1. 在 IntelliJ IDEA Terminal 中,執行 mvn compile -Dmaven.test.skip=true 進行編譯。在 /packages/skywalking-agent 目錄下,我們可以看到編譯出來的 Agent :

  2. 使用 Spring Boot 建立一個簡單的 Web 專案。類似如下 :

    友情提示 :這裡一定要註意下。建立的 Web 專案,使用 IntelliJ IDEA 的選單 File / New / Module 或 File / New / Module from Existing Sources ,保證 Web 專案和 skywalking 專案平級。這樣,才可以使用 IntelliJ IDEA 除錯 Agent 。

  • 在 org.skywalking.apm.agent.SkyWalkingAgent 的 #premain(…) 方法,打上除錯斷點。

  • 執行 Web 專案的 Application 的 #main(args) 方法,並增加 JVM 啟動引數,-javaagent:/path/to/skywalking-agent/skywalking-agent.jar/path/to 引數值為上面我們編譯出來的 /packages/skywalking-agent 目錄的絕對路徑。如下圖 :

  • 如果在【第三步】的除錯斷點停住,說明 Agent 啟動成功


考慮到可能我們會在 Agent 上增加程式碼註釋,這樣每次不得不重新編譯 Agent 。可以配置如下圖,自動編譯 Agent :

  • -T 1C clean package -Dmaven.test.skip=true -Dmaven.compile.fork=true 。

另外,使用 IntelliJ IDEA Remote 遠端除錯,也是可以的。如下圖 :

5. 啟動 SkyWalking Web UI

考慮到除錯過程中,我們要看下是否收集到追蹤日誌,可以安裝 SkyWalking Web UI 進行檢視。

參考 《官方檔案 —— Sky Walking Web UI》 安裝。

666. 彩蛋

SkyWalking 環境搭建完成,胖友們可以起飛,原始碼讀起來。

這會是個系列文章,筆者會慢慢更新。

如下是筆者對程式碼量和用途的簡單整理,完善度比較低,可能有一丟丟的幫助 :



歡迎加入我的知識星球,一起探討架構,交流原始碼。加入方式,長按下方二維碼噢

已在知識星球更新原始碼解析如下:

如果你喜歡這篇文章,喜歡,轉發。

生活很美好,明天見(。・ω・。)ノ♡

    閱讀原文

    贊(0)

    分享創造快樂