APM工具对比
市面上有很多分布式链路监控的工具,笔者经过调研,进行客观对比。
调研
市面上的APM(Application Performance Management)理论模型大多都是借鉴Google Dapper论文。
笔者最近在用Spring Cloud作为技术栈构建项目,在思考选取哪一个APM工具,如下对比各个工具在Spring Cloud 中的使用。
对比三种工具:
- zipkin:Twitter公司开源的一个分布式追踪工具,被Spring Cloud Sleuth集成,使用广泛而稳定
- skywalking:中国人吴晟(华为)开源的一款分布式追踪,分析,告警的工具,现在是Apache旗下开源项目
- cat:大众点评开源的一款分布式链路追踪工具。
整体架构
zipkin
zipkin分为zipkin服务端和客户端,每一个被监控的服务都是客户端。
组件:
- 追踪器:位于客户端,并记录有关发生的操作的时间和元数据,对用户透明
- Reporter: 将数据发送到Zipkin的检测应用程序
- Transport :传输数据:HTTP, Kafka and Scribe.
- Collector:位于服务端中,收集传输来的数据
- Storage :存储数据,默认存储在内存中
- search :查询api,JSON应用编程接口,被UI调用
- UI :Web UI提供了一种基于服务,时间Annotation查看跟踪的方法。UI中没有内置身份验证
skywalking
组件:
skywalking分为四个部分:探针,平台后端,存储,UI
- Probes:探针,探针因被收集的项目使用的语言不同而不同,收集数据并且格式化为skywalking所需的格式。
- Platform backend:平台后端,对应于zipkin server,可以集群部署,聚合,分析,将数据展示在UI中
- Storage:存储,可扩展的存储,可以使es,H2,MySQL集群
- UI:丰富的可视化功能,提供身份验证