之前已经将 oap 和 ui 调试成功了,今天排查一个 agent 的采集问题,又研究了下 agent 代码如何调试,这下终于齐活了,以后 skywalking 再有问题,直接使用调试大法。
废话不多说,我们看下如何搞,步骤如下:
1,下载 skywalking 源码,进行编译打包(注意从 skywalking 8.8.0 开始 agent 代码从主仓库独立出来为 skywalking-java )
mvn clean package -Dmaven.test.skip
2,将skywalking 源码作为一个 Intellj IDEA模块导入和我们agent的项目平级
我这里用的版本是 skywalking 8.4.0,oap,ui,agent代码都在一起,所以就直接导入就行,如下图示:
使用agent的应用:
导入skywalking已经打包后的源码:
在 IDEA 的左上角点击 File => New => Module From Existing Sources
导入后的图示:
里面包含了打包好的agent目录
接着给应用配置skywalking 启动参数:
-Dskywalking.collector.backend_service=192.168.118.107:11800 -Dskywalking.agent.service_name=k8s-spring-demo -javaagent:/Users/xxx/skywalking/dxy-skywalking-agent/skywalking-agent.jar
然后在 skywalking 的源码里打上断点,就可以愉快的调试了
如果代码有调整,还是需要重新打包的。
最后如果不想调试了,可以如下方法移除导入的 skywalking 模块,进入应用的目录下删除 .idea 目录,然后重新打开即可:
rm -rf .idea