大鲶鱼保佑233333 2024-06-13 14:03 采纳率: 62.5%
浏览 70

SkyWalking追踪gateway网关链路无法和服务串联

问题遇到的现象和发生背景

使用SkyWalking追踪gateway链路的时候,通过网关路由到其他服务,但是拓扑图和链路却把网关和服务分开了。
应该是user→gateway→order-service,但是却变成了user→gateway,和user→order-service。
SkyWalking的agent的网关jar包“apm-spring-cloud-gateway-4.x-plugin-9.2.0.jar”和webflux的包“apm-spring-webflux-6.x-plugin-9.2.0.jar”都已经配置进了plugins文件夹了

img

操作环境、软件版本等信息

java17,spring-cloud-starter-gateway的版本是4.12,SkyWalking的版本是10.0.1

尝试过的解决方法

SkyWalking的agent的网关jar包“apm-spring-cloud-gateway-4.x-plugin-9.2.0.jar”和webflux的包“apm-spring-webflux-6.x-plugin-9.2.0.jar”都已经配置进了plugins文件夹。

更改gateway网关版本3.x

我想要达到的结果

链路拓扑:
user→gateway→order-service

  • 写回答

5条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-06-13 14:03
    关注

    引自免费微信小程序:皆我百晓生

    面对SkyWalking在追踪Spring Cloud Gateway时遇到的问题,关键在于确保网关与下游服务之间的链路正确串联。以下是一些步骤和建议,可以帮助你解决这个问题:

    确保SkyWalking Agent配置正确

    首先,确认你的SkyWalking Agent配置是否正确。在skywalking-agent/config/agent.config文件中,确保以下配置项正确无误:

    # 指定插件目录
    plugin_path=plugins
    # 启用Spring Cloud Gateway插件
    apm.spring.cloud.gateway.enabled=true
    

    配置Gateway Plugin

    在Spring Cloud Gateway服务中,确保已经添加了SkyWalking的Spring Cloud Gateway插件依赖。如果你使用的是Maven,应该在pom.xml中包含如下依赖:

    <dependency>
        <groupId>org.apache.skywalking</groupId>
        <artifactId>apm-spring-cloud-gateway-4.x-plugin</artifactId>
        <version>9.2.0</version>
    </dependency>
    

    检查Gateway路由

    检查你的Gateway配置是否正确地指定了下游服务。在application.ymlapplication.properties中,确认路由规则:

    spring:
      cloud:
        gateway:
          routes:
            - id: order_route
              uri: lb://order-service
              predicates:
                - Path=/orders/**
    

    日志分析

    开启SkyWalking的日志记录,以便于追踪具体问题。在skywalking-agent/config/agent.config中,增加或确认以下设置:

    logging.level.root=DEBUG
    

    这将帮助你获取更详细的日志输出,用于诊断可能的配置错误或兼容性问题。

    测试链路追踪

    执行一些请求,通过Gateway路由至下游服务,并检查SkyWalking UI上的链路拓扑图。如果仍然出现问题,尝试以下操作:

    1. 重启服务:确保所有服务(包括Gateway和SkyWalking)都重新启动,以应用新的配置。
    2. 检查SkyWalking UI:确保在SkyWalking的拓扑图中可以看到从Gateway到下游服务的链路。
    3. 查看日志:检查SkyWalking和Gateway的日志,寻找任何异常或错误信息。

    调整插件版本

    如果上述步骤都无法解决问题,可能是由于插件版本与SkyWalking版本不匹配。考虑调整使用的插件版本,以确保其与SkyWalking版本兼容。例如,如果你使用的是SkyWalking 10.0.1,确保插件版本也是适配这个版本的。

    最后一步:反馈社区

    如果以上所有步骤都不能解决问题,建议在SkyWalking的GitHub Issue页面或社区论坛上寻求帮助。提供详细的错误信息和配置,通常可以更快地得到针对性的帮助。

    通过遵循上述步骤,你应该能够解决SkyWalking在追踪Spring Cloud Gateway链路时遇到的问题,实现从用户到Gateway再到下游服务的完整链路追踪。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 6月13日

悬赏问题

  • ¥15 如何在vue.config.js中读取到public文件夹下window.APP_CONFIG.API_BASE_URL的值
  • ¥50 浦育平台scratch图形化编程
  • ¥20 求这个的原理图 只要原理图
  • ¥15 vue2项目中,如何配置环境,可以在打完包之后修改请求的服务器地址
  • ¥20 微信的店铺小程序如何修改背景图
  • ¥15 UE5.1局部变量对蓝图不可见
  • ¥15 一共有五道问题关于整数幂的运算还有房间号码 还有网络密码的解答?(语言-python)
  • ¥20 sentry如何捕获上传Android ndk 崩溃
  • ¥15 在做logistic回归模型限制性立方条图时候,不能出完整图的困难
  • ¥15 G0系列单片机HAL库中景园gc9307液晶驱动芯片无法使用硬件SPI+DMA驱动,如何解决?