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

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

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

从官方仓库 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 的视频,快来点击传送门 。


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

查看所有标签

猜你喜欢:

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

虚拟现实:最后的传播

虚拟现实:最后的传播

聂有兵 / 中国发展出版社 / 2017-4-1 / 39.00

本书对“虚拟现实”这一诞生自70年代却在今天成为热门话题的概念进行了历史发展式的分析和回顾,认为虚拟现实是当今最重大的社会变革的技术因素之一,对虚拟现实在未来百年可能给人类社会的各个层面带来的影响进行说明,结合多个大众媒介的发展趋势,合理地推演未来虚拟现实在政治、经济、文化等领域的态势,并基于传播学理论框架提出了几个新的观点。对于普通读者,本书可以普及一般的虚拟现实知识;对于传媒行业,本书可以引导......一起来看看 《虚拟现实:最后的传播》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具