SkyWalking简介
Apache SkyWalking 是一个观察性分析平台和应用性能管理系统(APM),它提供了分布式追踪、服务网格遥测分析、度量聚合和可视化一体化解决方案。SkyWalking 主要用于微服务架构下的系统监控,帮助开发者或运维人员快速定位问题,优化系统性能。
核心功能
- 分布式追踪:支持对分布式系统的调用链路进行追踪,可以清晰地看到每个请求在各个服务之间的流转情况,以及每个节点的执行时间,有助于快速定位性能瓶颈。
- 服务网格遥测:与Istio等服务网格集成,自动收集网格内的各种指标数据,无需修改应用程序代码即可实现全面监控。
- 度量聚合:提供多种维度的服务性能指标统计,如响应时间、成功率等,并支持自定义指标。
- 可视化界面:通过友好的Web UI展示系统运行状态,包括但不限于服务拓扑图、调用链路详情、异常告警信息等。
- 告警通知:根据预设规则触发告警,支持邮件、Webhook等多种方式发送通知。
- 插件化设计:支持丰富的插件扩展,方便接入不同的数据源和服务框架。
技术特点
- 高性能:采用轻量级的数据采集机制,对生产环境影响极小。
- 易用性:提供简单的Agent自动注入方式,几乎不需要改动现有业务逻辑就能实现监控。
- 灵活性:支持多种语言的客户端SDK,能够适应不同技术栈的应用场景。
- 开源生态:作为Apache顶级项目,拥有活跃的社区支持和丰富的文档资料。
应用场景
- 微服务架构下的性能优化
- 分布式系统的故障排查
- 云原生环境下服务治理
- DevOps流程中的持续交付与监控
总之,Apache SkyWalking 是一款非常强大的APM工具,尤其适合于现代复杂的微服务架构中使用,能够极大地提升系统的可观测性和可维护性。
SkyWalking 的架构
整个架构,分成上、下、左、右四部分:
考虑到让描述更简单,我们舍弃掉 Metric 指标相关,而着重在 Tracing 链路相关功能。
- 上部分Agent :负责从应用中,收集链路信息,发送给 SkyWalking OAP 服务器。目前支持 SkyWalking、Zikpin、Jaeger 等提供的 Tracing 数据信息。而我们目前采用的是,SkyWalking Agent 收集 SkyWalking Tracing 数据,传递给服务器。
- 下部分SkyWalking OAP :负责接收 Agent 发送的 Tracing 数据信息,然后进行分析(Analysis Core) ,存储到外部存储器( Storage ),最终提供查询( Query )功能。
- 右部分Storage :Tracing 数据存储。目前支持 ES、MySQL、Sharding Sphere、TiDB、H2 多种存储器。而我们目前采用的是 ES ,主要考虑是 SkyWalking 开发团队自己的生产环境采用 ES 为主。
- 左部分SkyWalking UI :负责提供控台,查看链路等等。
参考链接: