07. Skywalking 服务监控和链路追踪

Spring Cloud 微服务系列文章,点击上方合集↑

1. 简介

SkyWalking是一个针对分布式系统的应用程序性能监视工具和分析平台,它是基于Java Agent探针的技术,对服务进行监控和追踪,具有零侵入性特点。

SkyWalking对运行中的服务进行实时监控,收集系统的调用链、方法调用路径等关键数据指标。

官网地址:https://skywalking.apache.org

2. 下载安装

可以直接下载二进制包或通过源码编译打包。

2.1 直接下载(推荐)

官网下载地址:https://skywalking.apache.org/downloads/

07. Skywalking 服务监控和链路追踪_第1张图片

  • 这里下载9.1.0的版本(高版本的需要Java11以上版本才行)。

官网下载很慢,网盘下载(推荐):「apache-skywalking-apm-9.1.0.tar.gz」来自UC网盘分享
https://drive.uc.cn/s/49ef857d0e944

2.2 编译安装

通过maven命令编译源码,生成可以运行的二进制包。

# 下载源码
git clone https://github.com/apache/skywalking.git

# 进入目录
cd skywalking

# 切换分支
git checkout v9.1.0

git submodule init

# 这里容易超时,注意检查,可以多试几次
git submodule update

# maven打包
mvn clean package -DskipTests

编译后的包都在目录/dist下。

3. 运行服务

3.1 修改端口号

将默认8080端口修改为80508080端口经常被占用)。

配置文件的路径:apache-skywalking-apm-bin/webapp/webapp.yml

cd webapp

vim webapp.yml

3.2 启动服务

apache-skywalking-apm-bin/bin路径下执行如下命令:

# mac/Linux
sh startup.sh

# windows
startup.bat

3.3 访问

浏览器访问:http://localhost:8050/ ,出现如下界面说明启动成功。
07. Skywalking 服务监控和链路追踪_第2张图片

4. 下载java探针

官网下载地址:https://skywalking.apache.org/downloads/

07. Skywalking 服务监控和链路追踪_第3张图片

  • 下载8.16.0版本。

官网下载很慢,网盘下载(推荐):「skywalking-agent-8.16.0.zip」来自UC网盘分享
https://drive.uc.cn/s/bd79d9556c314

5. 使用探针

5.1 运行jar包时使用探针

Java运行jar包的命令如下:

java -jar myapp.jar

我们加上如下参数,-javaagent指定探针的位置。

java -javaagent:/路径/skywalking-agent.jar   
-Dskywalking.agent.service_name=serviceName
-Dskywalking.collector.backend_service=localhost:11800
-jar myapp.jar
  • -javaagent:/路径/skywalking-agent.jar指定探针的位置
  • -Dskywalking.agent.service_name=serviceName指定服务名称
  • Dskywalking.collector.backend_service=localhost:11800指定收集器地址

5.2 IntelliJ IDEA 上使用探针

IntelliJ IDEA启动应用的时候加上VM参数

07. Skywalking 服务监控和链路追踪_第4张图片

07. Skywalking 服务监控和链路追踪_第5张图片

07. Skywalking 服务监控和链路追踪_第6张图片

输入如下:

-javaagent:/路径/skywalking-8.5.0/agent/skywalking-agent.jar
-Dskywalking.agent.service_name=gateway-service
-Dskywalking.collector.backend_service=localhost:11800
  • -javaagent:/路径/skywalking-agent.jar指定探针的位置
  • -Dskywalking.agent.service_name=serviceName指定服务名称
  • Dskywalking.collector.backend_service=localhost:11800指定收集器地址

在IntelliJ IDEA中对我们之前的gateway-serviceprovider-serviceconsumer-service三个服务加上探针。

1)gateway-service

skywalking agent 默认不支持 gateway,需要将optional-plugins目录下的gateway相关的插件(jar包)复制到plugins目录下。(网盘下载的我已经放好了)。

07. Skywalking 服务监控和链路追踪_第7张图片

07. Skywalking 服务监控和链路追踪_第8张图片

-javaagent:/路径/agent/skywalking-agent.jar
-Dskywalking.agent.service_name=gateway-service
-Dskywalking.collector.backend_service=localhost:11800 

2)provider-service

-javaagent:/路径/agent/skywalking-agent.jar 
-Dskywalking.agent.service_name=provider-service
-Dskywalking.collector.backend_service=localhost:11800

3)consumer-service

-javaagent:/路径/agent/skywalking-agent.jar 
-Dskywalking.agent.service_name=consumer-service
-Dskywalking.collector.backend_service=localhost:11800

注意不同的服务对应的-Dskywalking.agent.service_name不一样。

6. 服务监控和链路查看

浏览器访问接口: http://localhost:10000/consumer-service/consumer/test?name=zhangsan

多访问几次接口,然后在后台查看监控结果。后台地址:http://localhost:8050/

6.1 查看服务

gateway-serviceprovider-serviceconsumer-service三个服务。
07. Skywalking 服务监控和链路追踪_第9张图片

6.2 查看拓扑图

User->gateway-service->provider-service->consumer-service
07. Skywalking 服务监控和链路追踪_第10张图片

6.3 查看请求链路

可以看到具体的方法调用路径,包括调用花费的时间。
07. Skywalking 服务监控和链路追踪_第11张图片

7. 总结

SkyWalking是一个针对分布式系统的应用程序性能监视工具和分析平台。它利用Java Agent探针技术来监控和追踪服务,同时具备零侵入性的特点。通过实时监控和收集关键数据指标,SkyWalking帮助用户快速定位性能瓶颈和异常情况,为分布式系统提供全面的监控和管理服务。


07. Skywalking 服务监控和链路追踪_第12张图片

Spring Cloud 微服务系列 完整的代码在仓库的sourcecode/spring-cloud-demo目录下。

gitee(推荐):https://gitee.com/cunzaizhe/xiaohuge-blog

github:https://github.com/tigerleeli/xiaohuge-blog

关注微信公众号:“小虎哥的技术博客”,让我们一起成为更优秀的程序员❤️!

你可能感兴趣的:(Spring,Cloud,微服务系列,skywalking,spring,cloud,微服务)