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

本文对比了三种主流的分布式链路监控工具:zipkin、skywalking和cat。zipkin轻量级,与Spring Cloud集成紧密;skywalking采集数据丰富,UI友好,社区活跃;cat数据采集粒度细,但代码侵入性较强。选择时应根据实际需求考虑。
3313

被折叠的 条评论
为什么被折叠?



