中国首个个人主导的Apache孵化项目SkyWalking成功毕业!
整理:根哥啊
文章首发,微信公众号“Java后端技术”
来自 Apache Skywalking 官方的消息,Apache 基金会宣布 Skywalking 结束孵化,成为基金会顶级项目。
Apache SkyWalking 是一款应用性能监控(APM)工具,对微服务、云原生和容器化应用提供自动化、高性能的监控方案。项目于2015年创建,并于2017年12月进入 Apache 孵化器。经过一年半时间,该项目目前已成为 Apache 基金会顶级项目。
“今天对于 SkyWalking 项目和 SkyWalking 社区是意义非凡的一天。我们要特别感谢 SkyWalking 的 Apache 孵化器导师,项目贡献者和 Apache 孵化器帮助我们成为顶级项目”,Apache SkyWalking 项目 VP 吴晟说,” SkyWalking 最初只是为了帮助新人理解分布式追踪,但随着项目社区的变大和变强,我们成功的加入 Apache 孵化器。通过遵循 Apache 的社区建立模式,现在我们有一个非常活跃并多元化的社区。有超过70家公司公开宣布在使用 SkyWalking,项目有来自于数十家公司的超过100位的源码贡献者。”
一、什么是SkyWalking
SkyWalking 是观察性分析平台和应用性能管理系统。
SkyWalking 是一款国人主导开发的开源应用性能监控系统。SkyWalking是一个开源可观测性平台,用于收集、分析、聚合和可视化来自服务和云原生基础设施的数据。SkyWalking提供了一种简单的方法,可以让你清晰的查看分布式系统、甚至是跨云环境中。它更像是现代化APM(Application Performance Manager),专为云原生、基于容器和分布式系统而设计的。
SkyWalking 包括指标监控,分布式追踪,分布式系统性能诊断。提供分布式追踪、服务网格遥测分析、度量聚合和可视化一体化解决方案。
二、为什么要使用SkyWalking?
这里与其说为什么要使用SkyWalking ,倒不如说为什么要使用APM工具?相信还是有很多小小伙伴对APM工具不是很清楚的。下边我们简单的介绍一下!
随着微服务架构的流行,一些微服务架构下的问题也会越来越突出,比如一个请求会涉及多个服务,而服务本身可能也会依赖其他服务,整个请求路径就构成了一个网状的调用链,而在整个调用链中一旦某个节点发生异常,整个调用链的稳定性就会受到影响,所以会深深的感受到 “银弹” 这个词是不存在的,每种架构都有其优缺点 。
面对以上情况, 我们就需要一些可以帮助理解系统行为、用于分析性能问题的工具,以便发生故障的时候,能够快速定位和解决问题,这时候 APM(应用性能管理)工具就该闪亮登场了。
**三、SkyWalking 特性
包含以下特性:
- 服务、服务实例和endpoint(如:单个HTTP URI)的性能指标分析
- 根因分析
- 服务拓扑图
- 服务和Endpoint依赖分析
- 慢服务和慢Endpoint探查
- 性能优化
- 分布式追踪和追踪上下文传播
- 告警
**
四、SkyWalking的架构**
SkyWalking在逻辑上分为四个部分:探针,平台后端,存储和UI。
1、探针(Probes),基于不同的来源是不同的。它们收集数据并根据SkyWalking需求重新格式化。
2、平台后端(Platform backend),是一个后端服务,支持集群部署。它用于聚合,分析和驱动从探针到UI的流程。它还提供可插拔能力为不同的数据源(如Zipkin)、存储器实现和集群管理。您甚至可以使用观察分析语言自定义聚合和分析。
3、存储(Storage),是开放的。您可以选择现有的实现,例如ElasticSearch、H2或Sharding-Sphere管理的MySQL集群,也可以实现自己的。当然,非常感谢您为新的存储实现做出贡献。
4、UI,酷炫且非常强大,你也可以自己定制UI匹配后端。
小结:
SkyWalking 的核心是数据分析和度量结果的存储平台,通过 HTTP 或 gRPC 方式向 SkyWalking Collecter 提交分析和度量数据,SkyWalking Collecter 对数据进行分析和聚合,存储到 Elasticsearch、H2、MySQL、TiDB 等其一即可,最后我们可以通过 SkyWalking UI 的可视化界面对最终的结果进行查看。Skywalking 支持从多个来源和多种格式收集数据:多种语言的 Skywalking Agent 、Zipkin v1/v2 、Istio 勘测、Envoy 度量等数据格式。
整体架构看似模块有点多,但在实际上还是比较清晰的,主要就是通过收集各种格式的数据进行存储,然后展示。所以搭建 Skywalking 服务我们需要关注的是 SkyWalking Collecter、SkyWalking UI 和 存储设备,SkyWalking Collecter、SkyWalking UI 官方下载安装包内已包含,最终我们只需考虑存储设备即可。
五、谁在使用 SkyWalking
各种各样的公司和组织使用SkyWalking进行研究,生产和商业产品。这是SkyWalking 的用户墙。
六、常见的其他APM产品
目前主要的一些 APM 工具有: Cat、Zipkin、Pinpoint、SkyWalking。
- Pinpoint(https://github.com/naver/pinpoint)
- Zipkin(https://zipkin.io)
- Cat(https://github.com/dianping/cat)
这里我们介绍的 SkyWalking ,它是一款优秀的国产 APM 工具,包括了分布式追踪、性能指标分析、应用和服务依赖分析等。SkyWalking提供了在许多不同场景下观察和监控分布式系统的解决方案。
说明:
本次对比基于skywalking-6.0.0-GA和Pinpoint-1.8.2(截止2019-02-19最新版本)。另外,我们这次技术选型直接否定了Zipkin,其最大原因是它对代码有侵入性,CAT也是一样。这是我们所完全无法接受的。
SkyWalking 和Pinpoint应该是目前最优秀的两款开源APM产品了,而且两款产品都通过字节码注入的方式,实现了对代码完全无任何侵入,他们的对比信息如下:
说明:上述对比数据来源与2019-02-24,截止发稿的时候,SkyWalking 的GitHub Star数为7541。
参考文章:
http://skywalking.apache.org/zh/blog/2019-02-24-skywalking-pk-pinpoint.html