- 从github上拉取skywalking源码
git clone https://github.com/apache/skywalking.git
如果执行以上拉取过程太慢,可以自己新建一个码云仓库拉取,具体如下
https://blog.youkuaiyun.com/weixin_41618475/article/details/90262708
- git clone时可能会碰到一个问题
error: unable to create file apm-sniffer/apm-sdk-plugin/spring-plugins/spring-cloud/netflix-plugins/spring-cloud-feign-1.x- plugin/src/main/java/org/apache/skywalking/apm/plugin/spring/cloud/netflix/feign/v11/define/NetflixFeignInstrumentation.java:Fil ename too long
Checking out files: 100% (2137/2137), done.
fatal: unable to checkout working tree
warning: Clone succeeded, but checkout failed.
You can inspect what was checked out with 'git status'
and retry the checkout with 'git checkout -f HEAD
关键字: Filename too long
文件名太长,运行以下命令然后重新git clone便能解决:
git config --system core.longpaths true
- 拉取代码成功后使用idea打开项目,过程中会下载很多maven依赖请耐心等待
- 编译skywalking(跟官方文档是一样的)
- git submodule init ,初始化子模块
- git submodule update 更新子模块
- 编译之前请先安装好node,要确保能使用npm命令
并且需要把 apm-webapp工程的pom文件中npm的下载地址改成国内的,不然访问在编译过程中会因为访问不了国外的仓库而报错
4. 进行编译(请先确保第三步没有问题再进行编译)
mvn package -Dmaven.test.skip=true
5. 如果编译过程中报错:找不到或无法加载主类 org.apache.maven.wrapper.MavenWrapperMain
解决方法运行如下命令: (没碰到可以忽略)
mvn -N io.takari:maven:wrapper
6.再次执行编译命令如果遇到如下图错误需要在windows环境下安装protoc:
(6.1).下载需要的安装包:https://github.com/google/protobuf/releases
protoc-3.1.0-win32.zip(protoc-2.5.0-win32.zip)
protobuf-java-3.1.0.zip(protobuf-2.5.0.zip)
(6.2).将protoc-3.1.0-win32中的protoc.exe拷贝到c:\windows\system32
中
(6.3).将proto.exe文件拷贝到解压后的protobuf-3.1.0\src目录中
(6.4).protobuf-3.1.0\java 目录下执行mvn package命令编辑该包生成protobuf-java-3.1.0.jar文件
(这一步相当于安装了位于protobuf-3.1.0\java\core\target目录中)
安装完毕后继续执行第四步进行编译(如没遇到这个报错不管跳过就好)
- 设置 gRPC 的自动生成的代码目录,为源码目录 :
- 将
apm-protocol/apm-network/target/generated-sources/protobuf
目录下面grpc-java
和java
目录右键设置为Generated Rources Root
。 - 将
oap-server/server-core/target/generated-sources/protobuf
目录下面grpc-java
和java
目录右键设置为Generated Rources Root
。 - 将
oap-server/server-receiver-plugin/skywalking-istio-telemetry-receiver-plugin/target/generated-sources/protobuf
目录下面grpc-java
和java
目录右键设置为Generated Rources Root
。 - 启动 SkyWalking OAP Server
- 启动之前安装 ElasticSearch
ElasticSearch 安装教程如下:
https://blog.youkuaiyun.com/weixin_41618475/article/details/90263001
安装好es,需要修改一下 server-starter中的application.yml中的ip地址
因为我的es装在虚拟机中,而项目中默认的ip是本地,所以我改成了如下
2.运行 oap-server的server-starter的org.apache.skywalking.oap.server.starter.OAPServerStartUp的#main(args)方法,启动
Skywalking OAP Server
- 启动 SkyWalking UI
- 运行apm-webapp的org.apache.skywalking.apm.webapp.ApplicationStartUp的#main(args)方法,启动Skywalking UI,浏览器打开http://127.0.0.1:8080,输入账号密码admin/admin进行登录。
- 启动成功之后监控项目只需要在启动项目时加上vm参数就好了,参数如下:
-javaagent:D:\MyWork\skywalking_workspace\1\incubator-skywalking\skywalking-agent\skywalking-agent.jar -Dskywalking.agent.service_name=nacos-provider -Dskywalking.collector.backend_service=localhost:11800
参考文档以及博客:
芋道源码
http://www.iocoder.cn/SkyWalking/6/build-debugging-environment/
官方文档
不喜勿喷,随手做的笔记,有什么问题可以留言问博主,我看到了都会回答
本文为原创文章,转载请标明出处。