SkyWalking 覆盖了云原生世界中的所有可观测性需求,包括:
- Tracing 。SkyWalking 原生数据格式,以及 Zipkin 的 v1 和 v2 格式的追踪都被支持。
- Metrics 。SkyWalking 支持成熟的指标格式,包括原生计量格式、OTEL metrics 格式和 Telegraf 格式。SkyWalking 与服务网格平台(通常是 Istio 和 Envoy)集成,在数据平面或控制平面中构建可观测性。此外,SkyWalking 原生代理可以在 metrics 模式下运行,这大大提高了性能。
- Logging 。包括从磁盘或通过网络收集的日志。原生代理可以自动将 tracing 上下文与日志绑定,或使用 SkyWalking 通过文本内容绑定追踪和日志。
- Profiling 。Profiling 是一种强大的工具,帮助开发者从代码行的角度理解应用程序的性能。SkyWalking 提供了捆绑在原生语言代理和独立 ebpf 代理中的 profiling 功能。
- Event 。Event 是一种特殊类型的数据,用于记录系统中的重要时刻,如版本升级、配置更改等。将 event 与 metrics 关联可以帮助解释指标中的峰值或谷值,将 event 与 traces 和 logs 关联可以帮助排查根本原因。
Architecture
数据流向图 data flow chart
- Probes: 收集遥测数据,包括各种格式的metrics、traces、logs和events(SkyWalking、Zipkin、OpenTelemetry、Prometheus、Zabbix等)。
- Platform backend: 支持数据聚合、分析和流处理,涵盖traces、metrics、logs和events。可作为聚合器角色、接收器角色或两者兼具。
- Storage: 通过开放/可插拔接口存放SkyWalking数据。您可以选择现有的实现,如ElasticSearch、H2、MySQL、TiDB、BanyanDB,或实现您自己的存储方案。
- UI: 是一个高度可定制的基于Web的界面,允许SkyWalking终端用户可视化和管理SkyWalking数据。
搭建方案
skywalking/docker/docker-compose.yml at master · apache/skywalking · GitHub