解决skywalking-agent-java不支持spring cloud gateway问题

开发环境:Windows10 、JDK17

下载解压Java Agent

skywalking官网下载地址:https://skywalking.apache.org/downloads/
在这里插入图片描述
解压目录为:D:\Programs\soft-Plugins\apache-skywalking-java-agent-8.16.0\skywalking-agent
解压后目录结构为:
在这里插入图片描述

在IDEA中配置SkyWalking Agent

可参考官网博客文档:https://skywalking.apache.org/zh/2020-04-19-skywalking-quick-start/#232-idea

我的IDEA版本:IntelliJ IDEA 2021.3.3 (Ultimate Edition)

设置gateway项目的Edit Configuration选项
配置VM options:

-javaagent:D:\Programs\soft-Plugins\apache-skywalking-java-agent-8.16.0\skywalking-agent\skywalking-agent.jar
-Dskywalking.agent.service_name=bulv-gateway
-Dskywalking.collector.backend_service=127.0.0.1:11800

必须在VM options中指定-Dskywalking.agent.service_name才会在skywalking服务列表中显示服务名称。

配置Environment variables:

SW_AGENT_COLLECTOR_BACKEND_SERVICES=127.0.0.1:11800

如果configuration中没有Environment variables点击Modify options选中Environment variables:
在这里插入图片描述
最后配置如下:
在这里插入图片描述

复制jar

根据官方对Optional Plugins的相关描述:
https://skywalking.apache.org/docs/skywalking-java/v8.16.0/en/setup/service-agent/java-agent/optional-plugins/
提供了几点作为依据:

  • Plugin of Spring Cloud Gateway 2.x and 3.x in optional plugin folder.Please only activate this plugin when you install agent in Spring Gateway.【Spring Cloud Gateway插件2.X和3.x。在Optional Plugins(可选插件)文件夹中。请仅在Spring Gateway中安装代理时激活此插件。】
  • Plugin of spring-webflux-5.x in the optional plugin folder. Please only activate this plugin when you use webflux alone as a web container. If you are using SpringMVC 5 or Spring Gateway, you don’t need this plugin.【spring-webflux-5.x插件。在可选的插件文件夹中。请仅在使用webflux作为web容器时激活此插件。如果你正在使用SpringMVC 5或Spring Gateway,你不需要这个插件。】

所有我们进入skywalking-agent下的optional-plugins目录,把apm-spring-cloud-gateway-x.x-plugin-8.16.0.jar复制到skywalking-agent下的plugins目录里,根据spring-cloud-gateway依赖的spring版本选择不同的jar,我依赖的spring boot版本为3.0.2,所有我复制的apm-spring-cloud-gateway-3.x-plugin-8.16.0.jar。
在这里插入图片描述

启动skywalking-apm

前提是下载并解压了apache-skywalking-apm,然后进入到bin目录下双击startup.bat

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
注意:
我这里把D:\Programs\soft-Plugins\apache-skywalking-apm-bin\webapp和D:\Programs\soft-Plugins\apache-skywalking-apm-bin\config下的log4j2.xml的日志级别改为了DEBUG所以打印的日志多,默认是INFO级别的。

最后启动的spring cloud gateway项目,然后访问网关相关的接口后,再访问地址:http://127.0.0.1:8080,打开skywalking dashboard 点击左侧菜单:普通服务->服务。查看相关服务实例的Trace。
在这里插入图片描述

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐