Skywalking是什么
SkyWalking 是一个基于 OpenTracing 规范的、开源的APM应用程序性能监控系统(Application Performance Monitoring)
它是专门为微服务架构以及云原生架构而设计的,从 SkyWalking 6.0 开始,SkyWalking 将自身定义为一个观测性分析平台(Observability Analysis Platform)
Logging&Metrics&Tracing
微服务系统的监控主要包含以下三个方面
Logging
记录系统行为的离散事件。例如,服务在处理某个请求时打印的错误日志。大多数情况下记录的数据很分散,并且相互独立,也许是错误信息,也许仅仅只是记录当前的事件状态,或者是警告信息。
Metrics
系统在一段时间内某一方面的某个度量。例如服务的QPS、当天的用户登陆次数等。可聚合性即是Metrics的特征,例如为电商系统中每个 HTTP 接口添加一个计数器,计算每个接口的请求次数,之后就可以通过简单的加和计算得到系统的总负载情况。
Tracing
分布式链路追踪。提供了一个请求从接收到处理完毕整个生命周期的跟踪路径。它的特点就是在单次请求范围内,处理信息,例如:一次调用远程服务的RPC执行过程;一次实际的SQL查询语句;一次HTTP请求。
Skywalking整体架构
Skywalking在逻辑上分为三个核心部分
探针Agent
运行在各个服务实例中,负责收集服务实例中的Trace、Metrics等数据,并格式化为Skywalking适用的格式,最后通过gRPC上报给后端。
后端OAP
支持数据聚合,数据分析以及驱动数据流从探针到用户界面的流程,并将分析得到的结果进行持久化存储。
同时又分为三个角色:
- Receiver 负责接收代理跟踪或指标, 进行L1聚合,以及内部通讯
- Aggregator 负责进行L2聚合, 数据持久化以及告警
- Mixed = Receiver + Aggregator
UI界面
负责将用户的查询操作封装为GraphQL请求提交给OAP后端触发查询操作,待拿到查询结果之后在前端展示。