Spring Cloud Alibaba整合SkyWalking的监控完整使用

整合Spring Cloud 2025.0.0与SkyWalking的监控方案

环境准备

  • JDK 17或更高版本
  • Apache Maven 3.8.6+
  • Spring Cloud 2025.0.0(对应Spring Boot 3.3.0)
  • SkyWalking 9.4.0或更高版本
  • Docker(可选,用于快速部署SkyWalking)

SkyWalking服务端部署

Docker快速部署方案

bash 复制代码
# 部署SkyWalking OAP和UI
docker run --name skywalking-oap -d \
  -e SW_STORAGE=elasticsearch \
  -e SW_STORAGE_ES_CLUSTER_NODES=elasticsearch:9200 \
  -p 12800:12800 \
  apache/skywalking-oap-server:9.4.0

docker run --name skywalking-ui -d \
  -e SW_OAP_ADDRESS=http://oap:12800 \
  -p 8080:8080 \
  apache/skywalking-ui:9.4.0

手动安装方案

  1. Apache SkyWalking官网下载发行包
  2. 解压后修改config/application.yml配置存储模式(H2/ES/MySQL等)
  3. 启动OAP服务:bin/oapService.sh
  4. 启动Web UI:bin/webappService.sh

Spring Cloud应用集成

Maven依赖配置

xml 复制代码
<!-- SkyWalking Java Agent -->
<dependency>
  <groupId>org.apache.skywalking</groupId>
  <artifactId>apm-toolkit-logback-1.x</artifactId>
  <version>9.4.0</version>
</dependency>

<!-- 可选:Micrometer集成 -->
<dependency>
  <groupId>org.apache.skywalking</groupId>
  <artifactId>apm-toolkit-micrometer</artifactId>
  <version>9.4.0</version>
</dependency>

启动参数配置

bash 复制代码
-javaagent:/path/to/skywalking-agent/skywalking-agent.jar 
-Dskywalking.agent.service_name=your-service-name 
-Dskywalking.collector.backend_service=localhost:11800

高级配置项

application.yml增强配置

yaml 复制代码
skywalking:
  agent:
    service_name: ${spring.application.name}
    sample_n_per_3_secs: -1 # 全量采样
    ignore_suffix: .jpg,.css,.js # 忽略静态资源

Logback集成示例

xml 复制代码
<appender name="GRPC_LOG" class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.log.GRPCLogClientAppender">
    <encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
        <layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.mdc.TraceIdMDCPatternLogbackLayout">
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%tid] [%thread] %-5level %logger{36} -%msg%n</pattern>
        </layout>
    </encoder>
</appender>

监控功能验证

  1. 访问SkyWalking UI(默认http://localhost:8080
  2. 在拓扑图查看服务间调用关系
  3. 通过Trace功能查询具体请求链路
  4. 使用指标监控查看JVM/HTTP请求等性能数据

自定义Span示例

java 复制代码
@GetMapping("/trace")
@Trace(operationName = "customTraceMethod") 
public String traceMethod() {
    ActiveSpan.tag("custom_tag", "value");
    ActiveSpan.debug("Debug message");
    return "Traced";
}

问题排查方案

常见问题处理

  • 无数据上报:检查11800端口连通性,验证agent日志
  • 链路不完整:确保所有服务使用相同SkyWalking版本
  • 性能开销:调整采样率sample_n_per_3_secs

调试模式启用

bash 复制代码
-Dskywalking.agent.is_open_debugging=true


相关推荐
白宇横流学长1 分钟前
基于SpringBoot实现的智慧就业管理系统
java·spring boot·后端
weixin_462446237 分钟前
EasyExcel 动态修改模板 Sheet 名称:自定义 SheetWriteHandler 拦截器
java·开发语言·easyexcel
赵庆明老师12 分钟前
NET 使用SmtpClient 发送邮件
java·服务器·前端
苏小瀚13 分钟前
[Java EE] HTML·CSS·JavaScript基础
java·java-ee
李拾叁的摸鱼日常25 分钟前
Spring 框架中 RequestContextHolder 深度解析
java·架构
C++业余爱好者34 分钟前
JVM优化入门指南:JVM垃圾收集器(GC)介绍
java·开发语言·jvm
Trouvaille ~39 分钟前
【Java篇】基石与蓝图::Object 类与抽象类的双重奏
java·开发语言·javase·抽象类·类与对象·基础入门·object类
小光学长43 分钟前
基于ssm的美妆产品推荐系统rah0h134(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
java·数据库·spring
沐森1 小时前
相同方法不同状态下在ts和rust的写法(是我们一直追求的编译阶段)
架构
Light601 小时前
破局“数据孤岛”:构建业务、财务、指标三位一体的智能数据模型
java·大数据·开发语言