2.9 KiB
2.9 KiB
概览
SkyWalking一个开源可观测性平台,用于收集、分析、聚合和可视化来自服务和云原生基础设施的数据。SkyWalking提供了一种简单的方法,可以让你清晰的查看分布式系统、甚至是跨云环境中。它更像是现代化APM(Application Performance Manager),专为云原生、基于容器和分布式系统而设计的。
为什么要使用SkyWalking?
SkyWalking提供了在许多不同场景下观察和监控分布式系统的解决方案。首先,与传统方式不同,SkyWalking为服务实例提供自动语言探针,例如在Java,C#和NodeJS中。与此同时,他正准备为Go,C++提供手动语言探针SDK。此外,更多语言需要,运行时代码风险可控,云原生基础设施变得更加强大,SkyWalking使用Service Mesh基础网探针收集数据,来理解整个分布式系统。通常它为服务、服务实例、端点提供可观察性能力。
服务、服务实例和端点的概念在今天到处使用,所以我们首先要清楚它们在SkyWalking中的含义。
- 服务 表示提供相同行为请求的一个
服务集合或服务组工作负载。当你用语言探针或SDK时,你可以定义服务名称。或是SkyWalking使用你定义的名字在Istio这类平台中。 - 服务实例 表示
服务组中的每个工作负载都称作服务实例。就像pods在Kubernetes中一样,它不需要是OS中的单个进程。然而,如果您正在使用语言探针,一个服务实例则实际上是OS中的单个进程。 - 端点 表示某个服务传入请求的路径,例如HTTP URI路径或gRPC服务类+方法签名。
通过使用SkyWalking,您可以观察服务和端点之间的拓扑关系和每个服务实例的metrics,并为服务实例和端点设置警报规则。
除此之外,您还可以通过使用Zipkin、Jaeger、OpenCensus以及SkyWalking的语言探针或者SDK进行分布式全链路跟踪。
架构
SkyWalking在逻辑上分为四个部分:探针,平台后端,存储和UI。
- 探针 基于不同的来源是不同的。它们收集数据并根据SkyWalking需求重新格式化。
- 平台后端 是一个后端服务,支持集群部署。它用于聚合,分析和驱动从探针到UI的流程。它还提供可插拔能力为不同的数据源(如Zipkin)、存储器实现和集群管理。您甚至可以使用观察分析语言自定义聚合和分析。
- 存储 是开放的。您可以选择现有的实现,例如ElasticSearch、H2或Sharding-Sphere管理的MySQL集群,也可以实现自己的。当然,非常感谢您为新的存储实现做出贡献。
- UI 酷炫且非常强大,你也可以自己定制UI匹配后端。
接下来目标是什么?
- 了解SkyWalking的项目目标