简介
skywalking是做分布式追踪、服务网格遥测分析、度量聚合和可视化一体化的监视工具,具体的介绍可浏览官网或者阅读相关文档:
官网:
http://skywalking.apache.org/zh/
相关中文文档:
https://github.com/SkyAPM/document-cn-translation-of-skywalking
skywalking主要由四个模块组成,分别是:
1、探针:负责集成到目标系统中,收集遥测数据, 包括链路追踪和性能指标。
2、后台:负责接收探针收集的数据,由两大类数据组成,分别是 链路追踪 和 度量指标 。
3、界面:对后台收集的数据做可视化处理,提供了关于总览, 服务, 服务实例, 端点, 追踪和报警相关的观测图, 包括了拓扑图, 依赖图, 热点图等等.
4、命令行客户端:提供了一套提供与 Skywalking 后台交互的命令行接口。
同时skywalking还有很多其他的配置,如数据库配置,可使用elasticsearch作为数据存储等。
为什么使用skywalking
skywalking官方的一句话:分布式系统的应用程序性能监视工具
skywalking是对分布式系统应用程序的性能监视的工具。skywalking可以对服务的性能进行监控,以及服务的链路追踪和分析。
1、仪表盘
在skywalking UI的仪表盘中记录了服务、端点、实例的吞吐量CPM,响应百分比P99-P50,以及请求情况(请求成功率SLA)等图标信息,很直观的查看到哪些端点或者实例的运行情况
2、拓补图
在skywalking的拓补图中,展示了各个服务之间的关系和服务的类型,方便分析整个系统架构
3、链路追踪
skywalking可以获取每个请求的链路,并且记录每个点的耗时情况和运行情况,以红色表示失败,蓝色标识成功,并且展示每一层的调用情况以及耗时,可以分析出此次调用耗时在哪个环节,方便优化。如果是发生错误,skywalking也记录了整个调用链上发生错误的位置,方便排查错误
4、告警
skywalking可以配置告警功能,当配置的某个接口发生错误,达到配置的阈值时,skywalking可以发出告警,及时提醒开发者查看
所以,skywalking整合了微服务之间的关系,和链路追踪以及性能分析功能,便于微服务的性能分析和问题排查,不用挨个服务的寻找问题所在。
skywalking环境部署
skywalking下载
在官网下载最新版skywalking:
- 下载地址:http://skywalking.apache.org/zh/downloads/

解压后的文件

探针的使用
启动skywalking后台程序和ui
在此之前可以修改ui等启动的端口,例如ui的端口,在webapp目录下–>的webapp.yml文件,这里修改的是808端口,默认是8080

- 启动skywalking的方法是:
在解压下的bin目录,windows双击startup.bat,linux运行startup.sh
启动效果如下:

访问本地808端口:

探针的配置

使用探针
在要监控的项目中使用探针,在开发环境,结合idea使用时,配置我们项目的启动参数:
-javaagent:D:cloudapache-skywalking-apm-binagentskywalking-agent.jar
-javaagent后面是skywalking探针的绝对地址,也就是之前下载的skywalking的压缩包解压出来后目录下的agent目录下的agent jar包。


启动项目后,控制台会后探针日志打印

正式环境使用探针
如果是正式环境想要使用skywalking探针,也只需要在启动jar包的时候配置启动参数即可,例如:jar包启动,java -javaagent:D:cloudapache-skywalking-apm-binagentskywalking-agent.jar -jar
sentinel-dashboard-1.7.2.jar 启动即可,如图:


skywalking agent配置覆盖
在正式环境使用探针时,每使用一次,都去配置一下agent的参数信息也是比较繁琐的,所以skywalking有配置覆盖的选项,即不同的形式的配置优先级是不一样的,具体如下:
JVM配置 > 系统环境变量 > agent.config
上面所用的方式是agent.config的方式,优先级是最低的,所以还可以覆盖他的配置:
jvm配置:
-javaagent:/path/to/skywalking-agent.jar=[option1]=[value1],[option2]=[value2]
-javaagent:skywalkingagent.jar=agent.service_name=test,collector.backend_service=xxx:11800
环境变量配置:
-Dskywalking.[option1]=[value1]
-Dskywalking.service_name=xxxx
这样在启动的时候,就不用每次去复制一份agent文件了,只需要在启动时加上参数即可
skywalking效果
访问我们启动好的项目程序,可以看到,skywalking已经记录下了链路追踪的日志,包括访问的成功和失败



更多功能还需要我们接下来更多的探索。。。
skywalking仪表盘简介:
skywalking仪表盘布局
skywalking仪表盘分为服务、端点、实例的性能监控:
skywalking仪表盘大致结构如下(展示的图表可以自定义):

有功能的选择(功能分为仪表盘、拓补图、追踪、性能剖析、告警等功能,具体的下面介绍)
服务视角
服务视角分为界面如下:

服务视角有以上的监控数据可以自定义监视数据图表的展示
实例视角
实例仪表盘如下:

实例仪表盘分析了JVM相关的图表和请求响应相关的图表,可以直观的看到请求或者服务占用等情况。
端点视角
端点仪表盘如下:

端点仪表盘展示了每个端点的请求响应情况以及延时情况。在端点可以看到影响性能的端点名称等。
拓补图
拓补图可以看到整个微服务的相互作用关系,可以看到整个调用链的大致结构,以及服务的类型。方便开发者理解整个系统的架构
拓补图内容如下:

拓补图可以大致地看出某个服务的运行情况,也可以点击服务相关内容查看详细信息。在每个调用链上也展示了请求数和延时情况等信息,方便查看者对服务情况大体的了解。

拓补关系图分组,具体流程:Create group ===> 输入分组名称 ====> confirm


追踪
skywalking链路追踪可以收集整个服务的调用链,以及调用情况,执行情况,和参数等,具体如下:

蓝色为调用成功的链路,点击列表可展示链路具体的调用信息,查看耗时,参数,执行情况等,方便对链路进行分析。
性能分析
skywalking的性能分析,在根据服务名称、端点名称,以及相应的规则建立了任务列表后,在调用了此任务列表的端点后。skywalking会自动记录,剖析当前端口,生成剖析结果,具体流程如图:



skywalking告警
配置
skywalking告警的配置文件如图:

在skywalking目录的config目录下的alarm-setings.yml文件中进行配置

配置规则:
具体规格参考:
中文文档:https://github.com/SkyAPM/document-cn-translation-of-skywalking/blob/master/docs/zh/8.0.0/setup/backend/backend-alarm.md
英文文档:https://github.com/apache/skywalking/blob/v8.0.1/docs/en/setup/backend/backend-alarm.md

动态规则
skywalking可以设置动态规则,可以配合nacos或者Zookeeper实现
本文转载于
https://www.yuque.com/zhoujiyu/wspgur
暂无评论内容