前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >链路追踪 SkyWalking 6.x 源码分析 —— 调试环境搭建

链路追踪 SkyWalking 6.x 源码分析 —— 调试环境搭建

作者头像
芋道源码
发布2020-02-20 11:54:28
1.3K0
发布2020-02-20 11:54:28
举报
文章被收录于专栏:芋道源码1024

摘要: 原创出处 http://www.iocoder.cn/SkyWalking/6/build-debugging-environment/ 「芋道源码」欢迎转载,保留摘要,谢谢!

  • 1. 依赖工具
  • 2. 源码拉取
  • 3. 编译 SkyWalking
  • 4. 启动 SkyWalking OAP Server
  • 5. 启动 SkyWalking UI
  • 6. 启动 SkyWalking Agent
  • 666. 彩蛋

1. 依赖工具

  • Maven
  • Git
  • JDK 8 艿艿:注意,JDK 的版本一定要是 8 ,不然执行 maven package 命令时,会发生报错。
  • IntelliJ IDEA
  • NPM 艿艿:关于它的安装,胖友自己查询下噢。记得安装 nvm 。

2. 源码拉取

从官方仓库 https://github.com/apache/incubator-skywalking Fork 出属于自己的仓库。为什么要 Fork ?既然开始阅读、调试源码,我们可能会写一些注释,有了自己的仓库,可以进行自由的提交。?

使用 IntelliJ IDEAFork 出来的仓库拉取代码。拉取完成后,Maven 会下载依赖包,可能会花费一些时间,耐心等待下。

本文基于 master 分支,使用 SkyWalking 6.0.0-beta-SNAPSHOT 版本。

3. 编译 SkyWalking

参考 《官方文档 —— How to build》

  1. 打开 IntelliJ IDEA Terminal 中,执行输入命令:
    1. git submodule init ,初始化子模块。
    2. git submodule update ,更新子模块。
    3. mvn package -Dmaven.test.skip=true ,进行编译。这个编译的过程中,依赖 npm 环境。一般情况下,我们不需要编译 SkyWalking UI 项目,所以我们可以把 apm-webapp/pom.xml 的如下部分,进行注释掉。
  2. 设置 gRPC 的自动生成的代码目录,为源码目录 :
    • apm-protocol/apm-network/target/generated-sources/protobuf 目录下面grpc-javajava 目录右键设置为 Generated Rources Root
    • oap-server/server-core/target/generated-sources/protobuf 目录下面grpc-javajava 目录右键设置为 Generated Rources Root
    • oap-server/server-receiver-plugin/skywalking-istio-telemetry-receiver-plugin/target/generated-sources/protobuf 目录下面grpc-javajava 目录右键设置为 Generated Rources Root

4. 启动 SkyWalking OAP Server

  1. 安装 ElasticSearch 6.x 因为 SkyWalking 的 Tracing 的数据存储在它上面。具体的安全过程,胖友看看 《ElasticSearch 6.x 学习笔记:1.下载安装与配置》 。
  2. 运行 oap-serverserver-starterorg.apache.skywalking.oap.server.starter.OAPServerStartUp#main(args) 方法,启动 SkyWalking OAP Server 。
  3. 启动成功日志。 2018-11-19 17:12:26,331 - org.eclipse.jetty.server.Server - 71 [main] INFO [] - Started @5389ms

5. 启动 SkyWalking UI

  1. 运行 apm-webapporg.apache.skywalking.apm.webapp.ApplicationStartUp#main(args) 方法,启动 SkyWalking UI 。
  2. 浏览器打开 http://127.0.0.1:8080 ,输入账号密码 admin / admin 进行登录。

6. 启动 SkyWalking Agent

  1. skywalking-agent 目录下,我们可以看到编译出来的 skywalking-agent.jar
  1. 使用 Spring Boot 创建一个简单的 Web 项目,注意端口不要使用 8080 ,因为 SkyWalking UI 使用了 8080 端口。类似如下 :

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

  1. org.skywalking.apm.agent.SkyWalkingAgent#premain(...) 方法,打上调试断点。
  2. 运行 Web 项目的 Application 的 #main(args) 方法,并增加 JVM 启动参数,-javaagent:/path/to/skywalking-agent/skywalking-agent.jar/path/to 参数值为上面我们编译出来的 /packages/skywalking-agent 目录的绝对路径。如下图 :
  1. 如果在【第三步】的调试断点停住,说明 Agent 启动成功

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

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

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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-01-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 芋道源码 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 依赖工具
  • 2. 源码拉取
  • 3. 编译 SkyWalking
  • 4. 启动 SkyWalking OAP Server
  • 5. 启动 SkyWalking UI
  • 6. 启动 SkyWalking Agent
相关产品与服务
远程调试
远程调试(Remote Debugging,RD)在云端为用户提供上千台真实手机/定制机/模拟器设备,快速实现随时随地测试。运用云测技术对测试方式、操作体验进行了优化,具备多样性的测试能力,包括随时截图和记录调试日志,稳定的支持自动化测试, 设备灵活调度,用例高效执行, 快速定位产品功能和兼容性问题。云手机帮助应用、移动游戏快速发现和解决问题,节省百万硬件费用,加速敏捷研发流程。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档