點選上方“芋道原始碼”,選擇“設為星標”
做積極的人,而不是積極廢人!
摘要: 原創出處 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》
-
在 IntelliJ IDEA Terminal 中,執行
mvn compile -Dmaven.test.skip=true
進行編譯。 -
設定 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 除錯環境。
-
在 IntelliJ IDEA Terminal 中,執行
mvn compile -Dmaven.test.skip=true
進行編譯。在 /packages/skywalking-agent 目錄下,我們可以看到編譯出來的 Agent : -
使用 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 環境搭建完成,胖友們可以起飛,原始碼讀起來。
這會是個系列文章,筆者會慢慢更新。
如下是筆者對程式碼量和用途的簡單整理,完善度比較低,可能有一丟丟的幫助 :
歡迎加入我的知識星球,一起探討架構,交流原始碼。加入方式,長按下方二維碼噢:
已在知識星球更新原始碼解析如下:
如果你喜歡這篇文章,喜歡,轉發。 生活很美好,明天見(。・ω・。)ノ♡