多语言(Java、.NET、Node.js)混合架构下开源调用链追踪APM项目初步选型

1. 背景

我们的技术栈包括了Java、.NET、Node.js等,并且采用了分布式的技术架构,系统性能管理、问题排查成本越来越高。

2. 基本诉求

针对我们的情况,这里列出了选型的主要条件,作为最终判断依据

基本条件:

  • 多平台探针(Java、.NET Core、Node.js)
  • 无侵入的探针部署方式
  • 探针对应用性能和高可用影响小
  • 服务端高可用,服务端不可用时,客户端无影响

3. 主要选项

主流的调用链追踪项目有Pinpoint、Zipkin、Skywalking、CAT

3.1. Pinpoint

Pinpoint是韩国人开源,项目活跃度比较高,web端功能比较健全,包括应用调用关系拓扑图、请求调用链、应用性能状态查看等,探针支持Java和PHP。

项目地址 https://github.com/naver/pinpoint

3.2. Zipkin

Zipkin是Twitter开源的调用链分析工具,特点是轻量,使用部署简单,另外优势是探针支持的语言平台比较丰富。

项目地址 https://github.com/openzipkin/zipkin

3.3. Skywalking

SkyWalking是本土开源的调用链分析、以及应用监控分析工具。已加入Apache孵化器,特点是支持多种语言的探针(Java、.NET Core、NodeJS、PHP),探针支持的组件也非常丰富,UI功能较强,接入端无代码侵入,兼容Zipkin和Istio telemetry格式。

项目地址 https://github.com/apache/incubator-skywalking

3.4. CAT (Central Application Tracking)

CAT是大众点评开源的基于编码和配置的调用链分析,应用监控分析,日志采集,监控报警等一系列的监控平台工具。

项目地址 https://github.com/dianping/cat

4. 特性对比

特性PinpointZipkinSkywalkingCAT
存储方式HbaseCassandra、ES、MySQL、InMemoryES、H2、MySQL、TiDBMySQL、Hadoop
部署依赖 zookeeper、consul、KubernetesTomcat
数据协议thriftHTTP、MQgRPCTCP
数据采样
探针方式无侵入侵入式无侵入侵入式
探针平台Java、PHPJava、.NET Core、Go、PHP、Ruby、JsJava、.NET Core、Go、PHP、Node.jsJava、C、C++、Python、Go、Node.js
OpenTracing不支持支持支持不支持
STAR数80491040758388038
近1月提交人数93136
近1月提交数91257820

PS: 社区活跃度数据截至2019.02.15,仅供参考,并不能代表实际的活跃度。

5. 性能对比

参考文章《调用链选型之Zipkin,Pinpoint,SkyWalking,CAT》https://www.jianshu.com/p/0fbbf99a236e,Skywalking的Java探针对应用的性能影响最小,关于其它平台上的探针后续将做测试。

6. 初步结论

Zipkin积累的STAR数最多,Skywalking由于项目成立较晚,STAR数最少。近期的社区活跃度方面Pinpoint和Skywalking热度最高。

由于Pinpoint和CAT目前不支持 .NET Core 的探针直接排除,Zipkin和Skywalking的探针集成方式上对比,Skywalking的无侵入方式有很大的优势。

另外Skywaling为国人主导的项目,国人参与度非常高,沟通方面有一定的优势。

后续我们将针对Skywalking进行下面几点的测试:

  • 服务端高可用性
  • 服务端数据容量增长对性能的影响
  • 服务端不可用时对不同平台客户端的影响
  • 不同平台探针对应用的性能影响

7. 参考资料

调用链选型之Zipkin,Pinpoint,SkyWalking,CAT https://www.jianshu.com/p/0fbbf99a236e

全链路监控(一):方案概述与比较 https://juejin.im/post/5a7a9e0af265da4e914b46f1

探针性能揭秘 https://github.com/SkyAPMTest/Agent-Benchmarks/blob/master/README_zh.md

转载于:https://www.cnblogs.com/xiaoweiyu/p/10383461.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值