Zipkin是一款开源的分布式链路追踪系统,主要功能包括:
-
采集跟踪数据 - Zipkin client库负责收集并上报各服务的请求信息。
-
存储跟踪数据 - 存储层默认采用Zipkin自带的基于内存的快速存储,也支持整合MySQL、Cassandra等外部存储。
-
查询接口 - 提供RESTful API进行跟踪数据查询。
-
可视化展示 - 提供Web UI进行链路调用可视化展示,方便跟踪系统调用过程。
-
集成工具 - 提供了与主流开发框架的无缝集成,如Spring Cloud Sleuth。
-
报警管理 - 支持设置报警规则,在调用出现故障时发送通知。
-
服务依赖分析 - 分析各服务之间的依赖关系,构建拓扑图。
-
性能优化 - 根据 tracing数据找到系统热点并bottlenecks。
Zipkin采用跟踪ID唯一标识一个请求,通过收集和关联各服务跟踪数据来完成对整个调用链的分析,是微服务架构中重要的调试工具。
其对标的同类系统主要包括:
- Jaeger 由Uber开源的分布式链路追踪系统,与Zipkin功能类似,但重新设计了架构,追求更高性能。
- Apache SkyWalking Apache软件基金会孵化的分布态应用监控系统,提供链路追踪等功能。其中追踪模块与Zipkin对标。
- LightStep LightStep提供商业的分布式Tracing作为Service,可以无缝集成到现有系统,对标Zipkin的Tracing能力。
- AppDash 一个提供分布式系统监控和性能分析的商业化产品,可以查看应用拓扑和Tracing。
- Haystack Pinterest开源的分布式监控系统,追踪分析是其一个组件,对标Zipkin。
- AWS X-Ray 亚马逊提供的分布式Tracing服务,可以无缝集成AWS生态系统,对标Zipkin的能力。
- Grafana Tempo Grafana Labs推出的Tracing系统,采用并行处理和存储设计,与Zipkin功能对标。
- Pinpoint 韩国NAVER公司开发的应用监控系统,支持追踪分析,与Zipkin类似。