鏈路追蹤 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》
在 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 環境搭建完成,胖友們可以起飛,原始碼讀起來。
這會是個系列文章,筆者會慢慢更新。
如下是筆者對程式碼量和用途的簡單整理,完善度比較低,可能有一丟丟的幫助 :
歡迎加入我的知識星球,一起探討架構,交流原始碼。加入方式,長按下方二維碼噢:
已在知識星球更新原始碼解析如下:
如果你喜歡這篇文章,喜歡,轉發。
生活很美好,明天見(。・ω・。)ノ♡
相關文章
- skywalking鏈路追蹤
- 微服務鏈路追蹤元件 SkyWalking微服務元件
- 日誌收集和鏈路追蹤:skywalking
- RocketMQ系列-搭建Namesrv原始碼除錯環境MQ原始碼除錯
- JVM 原始碼分析(二):搭建 JDK 8 原始碼除錯環境(Windows 上使用 CLion)JVM原始碼JDK除錯Windows
- 分散式事務 TCC-Transaction 原始碼分析 —— 除錯環境搭建分散式原始碼除錯
- Redis原始碼漂流記(二)-搭建Redis除錯環境Redis原始碼除錯
- 熔斷器 Hystrix 原始碼解析 —— 除錯環境搭建原始碼除錯
- 分散式鏈路追蹤自從用了SkyWalking,睡得真香!分散式
- SkyWalking —— 分散式應用監控與鏈路追蹤分散式
- .NET6接入Skywalking鏈路追蹤完整流程
- 搭建 sentry 追蹤 Laravel 生產環境 bugLaravel
- 訊息中介軟體RocketMQ原始碼解析-- --除錯環境搭建MQ原始碼除錯
- 輕鬆兩步,搭建斷點除錯 PHP 原始碼環境斷點除錯PHP原始碼
- 訊息中介軟體 RocketMQ 原始碼解析 —— 除錯環境搭建MQ原始碼除錯
- Spring原始碼分析(一) -- 環境搭建Spring原始碼
- Zookeeper原始碼分析(一) ----- 原始碼執行環境搭建原始碼
- go的鏈路追蹤Go
- DataGuard環境程式資訊追蹤
- 彙編環境下的原始碼除錯原始碼除錯
- 閘道器 Spring-Cloud-Gateway 原始碼解析 —— 除錯環境搭建SpringCloudGateway原始碼除錯
- Mac下Android Framework原始碼環境搭建執行及除錯方法MacAndroidFramework原始碼除錯
- 微服務呼叫鏈追蹤中心搭建微服務
- btcpool礦池原始碼分析(1)環境搭建TCP原始碼
- Spring Cloud 鏈路追蹤SpringCloud
- vs搭建遠端除錯環境除錯
- windbg 搭建雙擊除錯環境除錯
- MAC環境下PHP開發除錯環境搭建MacPHP除錯
- .NET Core整合SkyWalking+SkyAPM-dotne實現分散式鏈路追蹤分散式
- Spring cloud 整合 SkyWalking 實現效能監控、鏈路追蹤、日誌收集SpringCloud
- 追蹤解析 Disruptor 原始碼原始碼
- risc-v環境搭建及除錯除錯
- step 1 :搭建開發除錯環境除錯
- Flutter開發環境搭建和除錯Flutter開發環境除錯
- 分散式鏈路追蹤技術分散式
- Spring Cloud Sleuth 鏈路追蹤SpringCloud
- Go 鏈路追蹤入門 OpentelemetryGo
- Elasticsearch原始碼解析:環境搭建Elasticsearch原始碼