「这是我参与11月更文挑战的第1天,活动详情查看:2021最后一次更文挑战」
该篇文章是我在掘金的第一篇原创文章,跟大家来共同学习下 SkyWalking 在微服务下的一些使用方式,废话不多说,咱们直接开整!
我本人为了本地开发方便省事,所有的开发环境都是装在 Docker 中的
SkyWalking 是个啥东东?
简单来说,SkyWalking 是一个链路追踪的一个工具,可以帮助我们在微服务模式下,了解接口从调用到结束的一个过程,包括中间做了什么事,都非常的清晰可见!墙裂推荐!!!
在 Docker 中安装 skywalking-oap
这里需要说明下,我是用的自定义的网络,网络名称就叫 my,主要是为了方便容器镜像之间的连接访问,可以直接直接通过容器名称或者容器id进行连接
1 | bash复制代码# 1.创建自定义网络(已创建的话请忽略) |
在 Docker 中安装 skywalking-ui
1 | bash复制代码# 4.拉取 ui 镜像 |
访问 ui 界面地址:http://localhost:8088/,如果不出意外的大家就能看到如下界面
至此,SkyWalking 的环境就安装好了,下面进行在项目中使用 agent 探针包进行埋点监控链路信息
skywalking-agent 探针包的下载地址:skywalking.apache.org/downloads/,我这里下载的是SkyWalking Java Agent,版本是 8.8.0
下载完解压后进到 config 目录,里面有个 agent.config 的配置文件,下面我们要修改下里面的四个属性的配置,至于其他属性配置,大家可以根据自己的需要进行调整,每个属性的作用都有注释说明。
1 | ini复制代码# 收集 SQL 参数(默认是 false,这里改为 true) |
*注意:*如果你的项目服务入口是 gateway,那么需要把 optional-plugins(可选插件) 文件夹下的 apm-spring-cloud-gateway-2.1.x-plugin-8.8.0.jar
apm-spring-webflux-5.x-plugin-8.8.0.jar
两个 jar 包放到 plugins 目录下,否则将无法对 gateway 进行链路追踪!!!
植入 agent 探针包,通过 agent 探针包启动项目
这里我通过 IDEA 来演示下,在项目 JVM 参数中增加3个参数,如下图所示
-javaagent:指定探针包所在的路径
-Dskywalking.agent.service_name:指定当前服务的名称(随便定义)
-Dskywalking.collector.backend_service:指定要连接的 oap 服务,上面已经搭建过了
我这里一次性启动3个服务,给大家演示(3个服务都加入了探针包,JVM 参数都一样,除了服务名称不一样),然后在拓扑图上可以就看到你的服务信息
并且如果你调用了接口,可以在追踪里面看到接口调用的链路信息(包括 mysql 执行的 sql、服务之间的 feign 调用,redis 的调用等等都可以看到,非常的清晰)
接口中的一些的 query 参数啥的也都可以看到
相信大家也看到了在最后一张图中有 request.body 以及 response.body 这两个信息的展示,那为什么我自己搭建的没有呢,哎呀,这都是小问题,别急,这就是我要在下一篇文章中要给大家共同学习的一个知识点,如何在 SkyWalking 中自定义 Tag 信息?
好了,以上就完成了 SkyWalking 的搭建以及在项目中的使用,感谢大家的观看,共同学习!共同进步,冲鸭!
本文转载自: 掘金