SkyWalking 是什么?
一个开源的可观测平台,用于从服务和云原生基础设施收集,分析, 聚合及可视化数据。
SkyWalking 提供了一种简便的方式来清晰地观测分布式系统,甚至横跨多个云平台。SkyWalking 更是一个现代化的应用程序性能监控(Application Performance Monitoring)系统,尤其专为云原生、基于容器的分布式系统设计。
为什么使用SkyWalking
SkyWalking为服务(service),服务实例(service instance),以及端点(endpoint)提供了可观测能力。
使用 SkyWalking 时,用户可以看到服务与端点之间的拓扑结构,每个服务/服务实例/端点的性能指标,还可以设置报警规则。
除此之外, 你还可以通过以下方式集成
- 其他分布式追踪使用 Skywalking 原生代理和Zipkin , Jaeger 和 OpenCensus 的 SDK;
- 其他度量指标系统,例如 Prometheus , Sleuth(Micrometer)。
Skywalking架构
SkyWalking 逻辑上分为四部分: 探针, 平台后端, 存储和用户界面。
- 探针 基于不同的来源可能是不一样的, 但作用都是收集数据, 将数据格式化为 SkyWalking 适用的格式.
- 平台后端, 支持数据聚合, 数据分析以及驱动数据流从探针到用户界面的流程。分析包括 Skywalking 原生追踪和性能指标以及第三方来源,包括 Istio 及 Envoy telemetry , Zipkin 追踪格式化等。
- 存储 通过开放的插件化的接口存放 SkyWalking 数据. 你可以选择一个既有的存储系统, 如 ElasticSearch, H2 或 MySQL 集群(Sharding-Sphere 管理),也可以选择自己实现一个存储系统. 当然, 我们非常欢迎你贡献新的存储系统实现。
- UI 一个基于接口高度定制化的Web系统,用户可以可视化查看和管理 SkyWalking 数据。
Skywalking功能介绍
- 多种监控手段,可以通过语言探针和service mesh获得监控的数据
- 支持多重语言的自动探针,包括JAVA, .NET Core和NodeJS
- 轻量高效,无需大数据平台和大量的服务器资源
- 模块化,UI ,存储,集群管理都有多种机制可选
- 支持告警
- 优秀的可视化解决方案
skywalking优势
- 国内开源项目,社区成熟,且可与作者直接沟通。
- 支持语言更多:Java、.NET Core、PHP、Node.JS、Golang。
- 支持java自动探针,代码无侵入,只要简单配置,就可以自动实现各种指标、调用链的埋点。
- 众多存储选择:ElasticSearch、MySql、TiDB、H2、Sharding Sphere。
- 扩展性:支持模块、插件的可拔插。
- 支持java语言的几十种插件,例如:Tomcat、RabbitMq、Kafka,且易于二次开发。
- 性能:比其他开源软件性能都强