当服务多起来的时候,发生错误以后,都不清楚是在哪个环节出了错。需要通过日志逐一排查,这就比较耗时了。所以可以通过国产软件 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:\skywalking\apache-skywalking-apm-6.6.0\apache-skywalking-apm-bin\agent\config\agent.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 上有相应的数据产生
结果
图一
图二