SpringCloud整合Skywalking实现链路追踪

当服务多起来的时候,发生错误以后,都不清楚是在哪个环节出了错。需要通过日志逐一排查,这就比较耗时了。所以可以通过国产软件 Skywalking 辅助开发。

下载地址:

http://skywalking.apache.org/zh/downloads/

ps: 我并没有选择最新的版本,因为怕不稳定,最终版本是 6.6.0 Binary Distribution (Windows)

解压后的目录结构如下:

Skywalking 是使用 Java Agent 服务器探针来收集和发送数据到归集器。

有三种方式可以将相关服务的数据发送到 Skywalking 监听的端口(11800):

    IDEA 部署探针 Java 启动方式部署探针 Docker 启动方式部署探针

探针(也就是 skywalking-agent.jar) 放在 agen 目录下。

IDEA 部署探针

修改项目的 VM 运行参数,点击菜单栏中的 Run --> EditConfigurations,这里我以项目 platform-apihub

为例:

    -javaagent:用于指定探针路径 -Dskywalking.agent.service_name:用于重写 agent/config/agent.config 配置文件中的服务名 -Dskywalking.collector.backend_service:用于重写 agent/config/agent.config 配置文件中的服务地址

Java 命令行启动方式

java -javaagent:/path/to/skywalking-agent/skywalking-agent.jar -Dskywalking.agent.service_name=nacos-provider -Dskywalking.collector.backend_service=localhost:11800 -jar yourApp.jar

通过日志可以发现成功加载到探针

防丢失

DEBUG 2020-06-13 12:10:33:180 main AgentPackagePath : The beacon class location is jar:file:/D:/skywalking/apache-skywalking-apm-6.6.0/apache-skywalking-apm-bin/agent/skywalking-agent.jar!/org/apache/skywalking/apm/agent/core/boot/AgentPackagePath.class. 
INFO 2020-06-13 12:10:33:182 main SnifferConfigInitializer : Config file found in D:skywalkingapache-skywalking-apm-6.6.0apache-skywalking-apm-binagentconfigagent.config. 
12:10:36.441 [SkywalkingAgent-2-GRPCChannelManager-0] DEBUG org.apache.skywalking.apm.dependencies.io.netty.util.internal.logging.InternalLoggerFactory - Using SLF4J as the default logging framework

ps:一定要调用服务的接口,才会在 skywalking 上有相应的数据产生

结果

图一

图二

经验分享 程序员 微信小程序 职场和发展