携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第16天,点击查看活动详情
一、SkyWalking是什么
一个开源的可观测平台,用于从服务和云原生基础设施收集,分析, 聚合及可视化数据。 Skywalking是分布式系统的应用程序性能监视工具,专为微服务,云原生架构和基于容器(Docker,K8S,Mesos)架构而设计,它是一款优秀的APM(Application Performance Management)工具,包括了分布式追踪,性能指标分析和服务依赖分析等。具有多种监控手段,可以通过语言探针和service mesh获得监控的数据;支持多重语言的自动探针,包括JAVA, .NET Core和NodeJS;轻量高效,无需大数据平台和大量的服务器资源;模块化,UI ,存储,集群管理都有多种机制可选;而且支持告警,提供了优秀的可视化解决方案。
二、链路追踪框架对比
目前市面上开源的APM系统主要有CAT、Zipkin、SkyWalking等,大都是参考Google的Dapper来实现的。
-
Zipkin是Twitter开源的调用链路分析工具,目前基于Spingcloud sleuth得到了广泛的应用,特点是轻量,部署简单。
-
Skywalking是本土开源的基于字节码注入的调用链路分析以及应用监控分析工具,特点是支持多种插件,UI功能较强,接入端无代码侵入。
在三种链路监控组件中,skywalking探针对吞吐量影响最小,zipkin对吞吐量影响适中,pinpoint的探针对吞吐量影响最大。对于内存和cpu的使用,都差不多,相差在10%之内。
三、SkyWalking架构
SkyWalking 逻辑上分为四部分:探针,平台后端,存储和用户界面。
-
探针 基于不同的来源可能是不一样的, 但作用都是收集数据, 将数据格式化为 SkyWalking 适用的格式.
-
平台后端, 支持数据聚合, 数据分析以及驱动数据流从探针到用户界面的流程。分析包括 Skywalking 原生追踪和性能指标以及第三方来源,包括 Istio 及 Envoy telemetry , Zipkin 追踪格式化等。 你甚至可以使用 Observability Analysis Language 对原生度量指标 和 用于扩展度量的计量系统 自定义聚合分析。
-
存储 通过开放的插件化的接口存放 SkyWalking 数据. 你可以选择一个既有的存储系统, 如 ElasticSearch, H2 或 MySQL 集群(Sharding-Sphere 管理),也可以选择自己实现一个存储系统. 当然, 我们非常欢迎你贡献新的存储系统实现。
-
UI 一个基于接口高度定制化的Web系统,用户可以可视化查看和管理 SkyWalking 数据。