链路追踪之选型Zipkin、Pinpoint、SkyWalking、CAT、jaeger

分类: 365be体育app 时间: 2025-07-12 21:47:23 作者: admin 阅读: 963 点赞: 354
链路追踪之选型Zipkin、Pinpoint、SkyWalking、CAT、jaeger

简介

Zipkin是Twitter开源的调用链分析工具,目前基于springcloud sleuth得到了广泛的使用,特点是轻量,使用部署简单。Pinpoint是韩国人开源的基于字节码注入的调用链分析,以及应用监控分析工具。特点是支持多种插件,UI功能强大,接入端无代码侵入。SkyWalking 是本土开源的基于字节码注入的调用链分析,以及应用监控分析工具。特点是支持多种插件,UI功能较强,接入端无代码侵入。目前已加入Apache孵化器。CAT(Central Application Tracking)是大众点评开源的基于编码和配置的调用链分析,应用监控分析,日志采集,监控报警等一系列的监控平台工具。jaeger 受到Dapper和OpenZipkin的启发,是由Uber Technologies创建 并捐赠给Cloud Native Computing Foundation的分布式追踪平台。

对比

类别ZipkinPinpointSkyWalkingCATjaeger实现方式拦截请求,发送(HTTP,mq)数据至zipkin服务java探针,字节码增强java探针,字节码增强代码埋点(拦截器,注解,过滤器等)拦截请求主要支持语言JavaJavaJava/C/C++/Python/Go/Node.js/PHP/.Net/nginxJava/C/C++/Python/Go/Node.jsGo

接入

类别ZipkinPinpointSkyWalkingCATjaeger接入方式基于linkerd或者sleuth方式,引入配置即可javaagent字节码javaagent字节码代码侵入拦截/侵入agent到collector的协议http,MQthriftgRPChttp/tcpudp/httpOpenTracing√×√×√

分析

类别ZipkinPinpointSkyWalkingCATjaeger颗粒度接口级方法级方法级代码级接口级全局调用统计×√√√×traceid查询√×√×√报警×√√√×JVM监控××√√×

页面UI展示

类别ZipkinPinpointSkyWalkingCATjaeger健壮度********************

数据存储

类别ZipkinPinpointSkyWalkingCATjaeger数据存储ES,mysql,Cassandra,内存HbaseES,H2mysql,hdfsES,kafka,Cassandra,内存

PinPoint和SkyWalking支持的插件对比

类别PinpointSkyWalkingweb容器Tomcat6/7/8,Resin,Jetty,JBoss,WebsphereTomcat7/8/9,Resin,JettyJDBCOracle,mysqlOracle,mysql,Sharding-JDBC消息中间件ActiveMQ,RabbitMQRocketMQ 4.x,Kafka日志log4j, Logbacklog4j,log4j2, LogbackHTTP库Apache HTTP Client,GoogleHttpClient,OkHttpClientApache HTTP Client, OkHttpClient,FeignSpring体系spring,springbootspring,springboot,eureka,hystrixRPC框架Dubbo,ThriftDubbo,Motan,gRPC,ServiceCombNOSQLMemcached, Redis, CASSANDRAMemcached,Redis

社区活跃度

类别ZipkinPinpointSkyWalkingCATjaegerSTAR15.2k12.4k20.2k17.2k16.3k

性能

摘自:https://juejin.im/post/5a7a9e0af265da4e914b46f1

模拟了三种并发用户:500,750,1000。使用jmeter测试,每个线程发送30个请求,设置思考时间为10ms。使用的采样率为1,即100%,这边与生产可能有差别。pinpoint默认的采样率为20,即50%,通过设置agent的配置文件改为100%。zipkin默认也是1。组合起来,一共有12种。下面看下汇总表: 从上表可以看出,在三种链路监控组件中,skywalking的探针对吞吐量的影响最小,zipkin的吞吐量居中。pinpoint的探针对吞吐量的影响较为明显,在500并发用户时,测试服务的吞吐量从1385降低到774,影响很大。然后再看下CPU和memory的影响,在内部服务器进行的压测,对CPU和memory的影响都差不多在10%之内。

相关推荐