63.微服务保姆教程 (六) SkyWalking--分布式链路追踪系统/分布式的应用性能管理工具
SkyWalking—分布式链路追踪系统/分布式的应用性能管理工具(APM)
一、为什么要用SkyWalking
对于一个有很多个微服务组成的微服务架构系统,通常会遇到一些问题,比如:
- 如何串联整个调用链路,快速定位问题
- 如何缕清各个微服务之间的依赖关系
- 如何进行各个微服务接口的性能分折
- 如何跟踪整个业务流程的调用处理顺序
随着目前系统架构的复杂度越来越高(中台、微服务),并且线上应用的多级监控覆盖到了通讯、应用处理过程监控并且实现端到端的应用监测,线上性能故障的快速定位修复;而传统的监控分析方式已经无法满足我们的需求,因此许多强大的APM(Application Performance Managment 应用性能管理)工具应运而生(SkyWalking、Pinpoint、Cat、Zipkin)。性能测试也面临同样问题,目前越来越多的端到端的压测,单体压测已经比较成熟不管从实施到监控分析,全链路的压测分析比较困难,特别是链路中瓶颈点的定位。我们今天就聊一下全链路的追踪工具之一SkyWalking,它是一款优秀的国产 APM 工具,包括了分布式追踪、性能指标分析、应用和服务依赖分析等。
二、SkyWalking的核心功能
1)故障定位——可以看到请求的完整路径,相比离散的日志,更方便定位问题(由于真实线上环境会设置采样率,可以利用debug开关实现对特定请求的全采样);
2)依赖梳理——基于调用关系生成服务依赖图;
3)性能分析和优化——可以方便的记录统计系统链路上不同处理单元的耗时占用和占比;
4)容量规划与评估;配合Logging和Metric强化监控和报警。
三、SkyWalking介绍
1.SkyWalking架构
SkyWalking 的核心是数据分析和度量结果的存储平台,通过 HTTP 或 gRPC 方式向 SkyWalking Collecter 提交分析和度量数据,SkyWalking Collecter 对数据进行分析和聚合,存储到 Elasticsearch、H2、MySQL、TiDB 等其一即可,最后我们可以通过 SkyWalking UI 的可视化界面对最终的结果进行查看。Skywalking 支持从多个来源和多种格式收集数据:多种语言的 Skywalking Agent 、Zipkin v1/v2 、Istio 勘测、Envoy 度量等数据格式。
整体架构看似模块有点多,但在实际上还是比较清晰的,主要就是通过收集各种格式的数据进行存储,然后展示。所以搭建 Skywalking 服务我们需要关注的是 SkyWalking Collecter、SkyWalking UI 和 存储设备,SkyWalking Collecter、SkyWalking UI 官方下载安装包内已包含,最终我们只需考虑存储设备即可。
2.SkyWalking工作原理:
skywalaking总体架构分为三部分:
1、skywalking-collector:链路数据归集器,数据可以落地ElasticSearch,单机也可以落地H2,不推荐,H2仅作为临时演示用
2、skywalking-web:web可视化平台,用来展示落地的数据
3、skywalking-agent:探针,用来收集和发送数据到归集器
3.SkyWalking资料信息
官方网站地址:
http://skywalking.apache.org/
http://incubator.apache.org/projects/skywalking.html
github项目地址:https://github.com/OpenSkywalking/skywalking-netcore
下载地址:http://skywalking.apache.org/downloads/
四、SkyWalking环境搭建
1.整体环境介绍
1.1SkywalkIng oapservice(服务端)
SkywalkIng oapservice是负责处理监控数据的,比如接受skywalKking agent的监控数据,并存储在数据库中;接受skywalking webapp的前端请求,从数据库查询数据,并返回数据给前端。Skywalking oapservice通常以集群的形式存在。
1.2skywalking agent (客户端)
skywalking agent和业务系统绑定在一起,负责收集各种监控数据
1.3skywalking webapp (UI界面)
用于展示数据。
1.4数据存储
用于存储监控数据的数据库,比如mysql、elasticsearch等。
2.下载SkywalkIng
skywalking在8.8.0版本以后将agent单独拆分了出来,所以若要使用8.8.0版本以后的,需要下载apm和agent两个压缩包。
下载地址:http://skywalking.apache.org/downloads/
下载APM:
下载Agents:
apm解压后的目录结构:
agents解压后的目录结构: