SpringCloud 微服务监控 + SkyWalking 完整讲解
·
一、SpringCloud 微服务监控整体体系
微服务监控一般分为三层:
- 指标监控:服务器 CPU、内存、磁盘,JVM 堆、GC、线程池,接口 QPS、响应耗时、异常率。 常用组件:SpringBoot Actuator 暴露指标 + Prometheus + Grafana 可视化。
- 分布式链路追踪:记录完整调用链,定位慢接口、服务调用异常,解决跨服务排查难的问题。 主流:SkyWalking、Pinpoint、Zipkin、Jaeger。
- 日志监控:收集全服务日志,关键字检索、异常聚合,ELK/EFK。
传统方案 Actuator+Prometheus 只能看单点指标,无法串联完整调用链路;Zipkin 只做简单链路,无 JVM、系统指标;而 SkyWalking 一体化,链路、指标、日志、告警全部集成,企业微服务普遍使用。
二、SkyWalking 核心介绍
1. 整体架构四大组件
- Agent 探针(客户端) JavaAgent 无侵入式探针,项目启动时通过
-javaagent参数挂载,不需要改一行业务代码。 自动拦截 SpringMVC、Feign、Dubbo、MySQL、Redis、MQ 等中间件操作,采集链路、耗时、异常、JVM 指标,异步上报数据。 优势:零代码侵入,适配 SpringCloud 全组件。 - OAP 后端服务(收集处理核心) 接收 Agent 上报的链路、指标数据,做聚合计算、清洗分析;提供持久化存储接口。 支持集群部署保证高可用。
- 存储层 可选存储:Elasticsearch(生产主流,海量链路数据)、H2(本地测试)、MySQL(仅指标,不适合链路)。 链路数据量大,ES 支持分片存储,长期保存采样数据。
- UI 可视化控制台 提供 Web 页面,查看服务拓扑、链路详情、慢查询、JVM 监控、告警配置、接口性能排行。
2. SkyWalking 核心功能(SpringCloud 微服务重点)
(1)分布式调用链路追踪 Trace
一条请求生成唯一 TraceId,跨所有微服务传递,每个服务分段生成 Span:
- Span 记录单个操作:HTTP 接口、数据库查询、Redis 操作、Feign 远程调用;
- 页面展示完整调用树,每个环节耗时、异常信息、堆栈; 快速定位:慢 SQL、Feign 调用超时、第三方中间件卡顿。
(2)服务拓扑图
自动扫描所有服务之间调用关系,生成可视化拓扑: 可以直观看到服务依赖、调用频率、错误率,出现雪崩、服务异常时一眼看出故障传播链路。
(3)多维度性能指标监控
- 服务指标:QPS、平均响应时间、P95/P99 耗时、异常错误率;
- JVM 监控:堆内存、非堆内存、GC 次数 / 耗时、线程数量、类加载;
- 中间件监控:MySQL 慢查询、Redis 操作耗时、MQ 生产消费堆积;
- 网关指标:Gateway 请求量、转发耗时。
(4)无侵入自动埋点
原生支持 SpringCloud 全家桶: SpringMVC、OpenFeign、Nacos、Sentinel、Gateway、MySQL、Redis、RabbitMQ/Kafka,接入只需要挂载 agent,不用手动埋点。
(5)告警机制
支持自定义告警规则:服务错误率过高、接口 P99 耗时突增、JVM Full GC 频繁、服务实例下线;支持推送告警到钉钉、邮件、企业微信。
(6)日志联动
可整合日志收集,链路 TraceId 与日志绑定,通过 TraceId 一键跳转查看整条请求完整日志,不用跨系统检索。
三、SkyWalking 对比其他链路组件
- 对比 Zipkin/Jaeger Zipkin 只专注链路,无 JVM、系统指标监控,需要额外搭配 Prometheus;SkyWalking 一站式,一套工具搞定链路 + 指标。
- 对比 Pinpoint Pinpoint 也是无侵入,但内存占用更高,集群部署复杂;SkyWalking 资源开销更低,UI 更简洁,中文界面友好,国内生态完善。
- 传统埋点方案(手动 Sleuth+Zipkin) 需要引入依赖、修改配置,有代码侵入;SkyWalking JavaAgent 完全无侵入,新项目优先选择。
四、SpringCloud 接入 SkyWalking 流程(实战)
- 服务启动脚本添加 javaagent 参数,指定 skywalking-agent 包,配置 OAP 地址、服务名;
- 部署 OAP 服务集群,对接 Elasticsearch 存储;
- 启动微服务,Agent 自动采集调用数据异步上报;
- 访问 SkyWalking UI 查看拓扑、链路、性能指标,配置告警。
五、生产使用注意点
- 链路数据量大,开启采样策略,减少 ES 存储压力;
- Agent 异步上报,不阻塞业务请求,对接口性能损耗极低;
- OAP 集群部署,避免单点故障;
- 长期存储链路数据使用 ES 定时清理过期索引,防止磁盘占满。
简短总结
微服务监控分为指标、链路、日志三类;SkyWalking 是一体化 APM 监控工具,采用无侵入 JavaAgent 采集数据,架构分为 Agent、OAP、存储、UI;核心能力有分布式 Trace 链路追踪、服务拓扑、JVM 与中间件指标、告警;相比 Zipkin、Pinpoint 一站式更轻量,适配 SpringCloud 全套组件,是目前主流微服务监控选型。
更多推荐



所有评论(0)