初识SkyWalking
概念
Skywalk:针对分布式系统的APM(应用性能监控)系统,特别对微服务、cloud native和容器话架构,其核心是是分布式追踪系统。提供分布式追踪、服务网格遥测分析、度量聚会和可视化一体化解决方案。
- 服务(service):表示对请求提供相同行为的一系列或者一组工作负载;
- 服务实例(service instance)上述的一组工作负载中的每一个工作负载称为一个实例,类似kubernetes中的pods一样,服务实例未必就是操作系统上的一个进程,但当你在使用打点代理的时候,一个服务实例实际就是操作系统上的一个真实进程。
- 端点(endpoint)对于特定服务所接收的请求路径,如http的url路径和grpc服务的类名+方法签名。
以上来自: http://skywalking.apache.org/
功能列表
多种监控手段。可以通过语言探针和service mesh获取监控的数据。
多种语言自动探针。包括java,.net core和node.js。
轻量高效。无需大数据平台和大量的服务器资源。
模块化。UI、存储、集群管理都又多种机制可选。
支持告警。
优秀的可视化解决方案。
整体架构
SkyWalking 逻辑上分为四部分: 探针, 平台后端, 存储和用户界面,架构图如下:
- 上部分探针(agent):负责从应用中,收集链路信息,发送给skywalking OAP服务器。目前支持skywalking、zikpin、jaeger等提供Tracing数据信息。而我们目前采用的是skywalking agent 收集skywalking tracing数据,传递给服务器。
- 下部分平台后端(OAP):负责接收Agent发送Tracing数据信息,然后进行分析(Analysis Core),存储到外部存储器(storage),最终提供查询(query)功能。
- 有部分存储(storage):tracing数据存储。目前支持ES、mysql、sharding sphere、tidb、h2多种存储器。主流使用es多些。
- 左部分用户界面(ui):负责提供控制台,查看链路、服务指标等。