SkyWalking是什么
SkyWalking 为 服务(service), 服务实例(service instance), 以及 端点(endpoint) 提供了可观测能力。使用 SkyWalking 时, 用户可以看到服务与端点之间的拓扑结构, 每个服务/服务实例/端点的性能指标, 还可以设置报警规则。
架构
SkyWalking 逻辑上分为四部分: 探针, 平台后端, 存储和用户界面.
- 探针 基于不同的来源可能是不一样的, 但作用都是收集数据, 将数据格式化为 SkyWalking 适用的格式.
- 平台后端, 支持数据聚合, 数据分析以及驱动数据流从探针到用户界面的流程。分析包括 Skywalking
原生追踪和性能指标以及第三方来源,包括 Istio 及 Envoy telemetry , Zipkin 追踪格式化等。 你甚至可以使用
Observability Analysis Language 对原生度量指标 和 用于扩展度量的计量系统 自定义聚合分析。 - 存储 通过开放的插件化的接口存放 SkyWalking 数据. 你可以选择一个既有的存储系统, 如 ElasticSearch, H2 或
MySQL 集群(Sharding-Sphere 管理),也可以选择自己实现一个存储系统。 - UI 一个基于接口高度定制化的Web系统,用户可以可视化查看和管理 SkyWalking 数据。
设计目标
- 拓扑结构, 性能指标和追踪一体化
- 轻量级:1.探针的轻量级;2.技术栈足够简单
- 可插拔:提供大量的特性支持可插拔
- 可移植:可运行在多种环境,包括传统注册中心Eureka、RPC框架如Spring Cloud, Dubbo、服务网格、云服务、跨云
- 可互操作:支持与其他运维系统进行互操作,主要是探针,如 Zipkin, Jaeger, OpenTracing 和 OpenCensus. SkyWalking 接收并理解他们的数据格式