链路追踪 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 目录

  • 640?wx_fmt=jpeg

运行 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 :

    640?wx_fmt=jpeg
  2. 使用 Spring Boot 创建一个简单的 Web 项目。类似如下 :

    640?wx_fmt=jpeg

    友情提示 :这里一定要注意下。创建的 Web 项目,使用 IntelliJ IDEA 的菜单 File / New / Module 或 File / New / Module from Existing Sources ,保证 Web 项目和 skywalking 项目平级。这样,才可以使用 IntelliJ IDEA 调试 Agent 。

  • 640?wx_fmt=jpeg
  • 640?wx_fmt=jpeg

在 org.skywalking.apm.agent.SkyWalkingAgent 的 #premain(…) 方法,打上调试断点。

运行 Web 项目的 Application 的 #main(args) 方法,并增加 JVM 启动参数,-javaagent:/path/to/skywalking-agent/skywalking-agent.jar/path/to 参数值为上面我们编译出来的 /packages/skywalking-agent 目录的绝对路径。如下图 :

640?wx_fmt=jpeg

如果在【第三步】的调试断点停住,说明 Agent 启动成功


考虑到可能我们会在 Agent 上增加代码注释,这样每次不得不重新编译 Agent 。可以配置如下图,自动编译 Agent :

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


另外,使用 IntelliJ IDEA Remote 远程调试,也是可以的。如下图 :

640?wx_fmt=jpeg

5. 启动 SkyWalking Web UI

考虑到调试过程中,我们要看下是否收集到追踪日志,可以安装 SkyWalking Web UI 进行查看。

参考 《官方文档 —— Sky Walking Web UI》 安装。

666. 彩蛋

SkyWalking 环境搭建完成,胖友们可以起飞,源码读起来。

这会是个系列文章,笔者会慢慢更新。

如下是笔者对代码量和用途的简单整理,完善度比较低,可能有一丢丢的帮助 :

640?wx_fmt=jpeg




欢迎加入我的知识星球,一起探讨架构,交流源码。加入方式,长按下方二维码噢

640?wx_fmt=jpeg

已在知识星球更新源码解析如下:

640?wx_fmt=png

640?

640?wx_fmt=png

如果你喜欢这篇文章,喜欢,转发。

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值