Spring Boot(48)- 使用 SkyWalking 进行分布式链路追踪
介绍
在分布式系统中,了解各个服务之间的调用关系和性能表现是非常重要的。SkyWalking 是一款开源的分布式系统监控与分析平台,能够帮助我们实现分布式系统的链路追踪、性能监控和故障排查。本教程将介绍如何使用 Apache SkyWalking 进行分布式链路追踪,帮助我们深入了解分布式系统的运行情况。
前置知识
- Java 编程基础
- SpringBoot 应用开发、微服务架构概念
- Skywalking 核心概念
准备工作
- 下载并安装 Apache SkyWalking 服务器。
- 配置 Alibaba SkyWalking 服务器。
- 创建一个基本的 Spring Boot 应用,用于进行链路追踪实验。
步骤一:安装和配置 SkyWalking 服务器
- 下载 SkyWalking 服务器安装包。
- 解压安装包到指定目录。
- 配置 SkyWalking 服务器的相关参数。
本文是用 v9.0.0 版本为例
进入 SkyWalking 官方网站下载页面,点击 tar 资源下载
目录结构如下:
进入 bin 执行,执行bash startup.sh
(如果是 Windows ,执行 startup.bat)
访问 localhost:8080 ,正常访问表示启动成功。
相比 6.X、7.X,新页面还是可以的。
步骤二:编写 Spring Boot 应用
- 添加 SkyWalking 依赖到 Spring Boot 项目中。
<dependency>
<groupId>org.apache.skywalking</groupId>
<artifactId>apm-toolkit-trace</artifactId>
<version>9.0.0</version>
</dependency>
- 配置 Spring Boot 应用的 SkyWalking 连接信息。
application.properties 文件配置如下:
spring.application.name=skywalking-quickstart
# 应用端口号
server.port=8081
# SkyWalking 配置
skywalking.collector.backend_service=127.0.0.1:11800
skywalking.trace.ignore_path=/css,/js,/images
-
下载 Skywalking Agent
Skywalking 通过 Agent 的方式上报链路数据, 所以需要下载对应版本 Agent ,本文下载 V9.0.0[tar]。
解压后目录如下所示:
重点关注 skywalking-agent.jar 的全路径, 比如本文的地址是: /Users/murphy/Downloads/skywalking-agent/skywalking-agent.jar -
IDEA 配置 启动参数
如何在IDEA 中配置 java agent 的启动参数呢?如下所示
打开 IntelliJ IDEA,并打开你的 Spring Boot 项目。
在菜单栏中选择 “Run” -> “Edit Configurations…”。
在弹出的窗口中,选择你的 Spring Boot 应用程序的运行/调试配置。
在右侧的 “Configuration” 选项卡中,找到 “VM options” 输入框。
在 “VM options” 输入框中输入以下内容
-javaagent:/Users/murphy/Downloads/skywalking-agent/skywalking-agent.jar
- 编写一个验证接口
import org.apache.skywalking.apm.toolkit.trace.ActiveSpan;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class MyController {
@GetMapping("/hello")
public String hello() {
// 手动触发链路信息的上传
ActiveSpan.tag("tag_key", "tag_value");
return "Hello World!";
}
}
- 启动 Spring Boot 应用,使其将调用链信息发送到 SkyWalking 服务器。
访问接口 localhost:8081/hello 。
步骤三:查看分布式链路追踪结果
-
登录 SkyWalking 控制台,查看应用的调用链信息和性能指标。
-
观察调用链路图,了解各个服务之间的调用关系和性能瓶颈。
常见问题及解答
-
问题:SkyWalking 服务器启动失败。
解答:检查 SkyWalking 服务器的配置和环境是否正确,确保端口未被占用,默认是 8080端口。 -
问题:应用的调用链信息未显示在 SkyWalking 控制台。
解答:检查应用的 SkyWalking 配置是否正确,尤其是 Skywalking Agent 的版本和路径是否正确 , 确保连接信息和应用名称配置无误。
总结
通过本教程,我们学习了如何使用 Alibaba SkyWalking 进行分布式链路追踪。SkyWalking 提供了强大的分布式系统监控能力,能够帮助我们深入了解分布式系统的运行情况,及时发现和解决性能问题。
最后,贴上项目源码地址:d48-skywalking