SkyWalking 6.x 源码分析 —— 调试环境搭建

栏目: Java · 发布时间: 7年前

内容简介:从官方仓库使用本文基于

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

使用 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 RootSkyWalking 6.x 源码分析 —— 调试环境搭建
    • 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 进行登录。 SkyWalking 6.x 源码分析 —— 调试环境搭建

6. 启动 SkyWalking Agent

  1. skywalking-agent 目录下,我们可以看到编译出来的 skywalking-agent.jarSkyWalking 6.x 源码分析 —— 调试环境搭建
  2. 使用 Spring Boot 创建一个简单的 Web 项目,注意端口不要使用 8080 ,因为 SkyWalking UI 使用了 8080 端口。类似如下 : SkyWalking 6.x 源码分析 —— 调试环境搭建

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

    • SkyWalking 6.x 源码分析 —— 调试环境搭建
    • SkyWalking 6.x 源码分析 —— 调试环境搭建
  3. org.skywalking.apm.agent.SkyWalkingAgent#premain(...) 方法,打上调试断点。

  4. 运行 Web 项目的 Application 的 #main(args) 方法,并增加 JVM 启动参数, -javaagent:/path/to/skywalking-agent/skywalking-agent.jar/path/to 参数值 为上面我们编译出来的 /packages/skywalking-agent 目录的绝对路径。如下图 : SkyWalking 6.x 源码分析 —— 调试环境搭建
  5. 如果在【 第三步 】的调试断点停住,说明 Agent 启动 成功

考虑到可能我们会在 Agent 上增加代码注释,这样每次不得不重新编译 Agent 。可以配置如下图,自动编译 Agent : SkyWalking 6.x 源码分析 —— 调试环境搭建

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

另外,使用 IntelliJ IDEA Remote 远程调试,也是可以的。如下图 : SkyWalking 6.x 源码分析 —— 调试环境搭建

666. 彩蛋

SkyWalking 6.x 源码分析 —— 调试环境搭建

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

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

SkyWalking 6.x 源码分析 —— 调试环境搭建

因为准备重新读 SkyWalking 6.x 的代码,所以又简单的整理了下,这次的完成度更低,哈哈哈哈:

SkyWalking 6.x 源码分析 —— 调试环境搭建

另外,超级推荐看看胖友在录制的 SkyWalking 的视频,快来点击传送门 。


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

The Sovereign Individual

The Sovereign Individual

James Dale Davidson、William Rees-Mogg / Free Press / 1999-08-26 / USD 16.00

Two renowned investment advisors and authors of the bestseller The Great Reckoning bring to light both currents of disaster and the potential for prosperity and renewal in the face of radical changes ......一起来看看 《The Sovereign Individual》 这本书的介绍吧!

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具