链路追踪产品比对

589 阅读2分钟
前言

**“链路追踪”**一词是在2010年提出的,当时谷歌发布了一篇Dapper论文,介绍了谷歌自研的分布式链路追踪的实现原理,还介绍了他们是怎么低成本实现对应用透明的。

其实Dapper一开始只是一个独立的调用链路追踪系统,后来逐渐演化成了监控平台,并且基于监控平台孕育出了很多工具,比如实时预警、过载保护、指标数据查询等。

除了谷歌的dapper,还有一些其他比较有名的产品,比如阿里的鹰眼、大众点评的CAT、Twitter的Zipkin、Naver(著名社交软件LINE的母公司)的pinpoint以及国产开源的skywalking等。

简介

Zipkin是Twitter开源的调用链分析工具,目前基于springcloud sleuth得到了广泛的使用,特点是轻量,使用部署简单。

Pinpoint是韩国人开源的基于字节码注入的调用链分析,以及应用监控分析工具。特点是支持多种插件,UI功能强大,接入端无代码侵入。

SkyWalking是本土开源的基于字节码注入的调用链分析,以及应用监控分析工具。特点是支持多种插件,UI功能较强,接入端无代码侵入。目前已加入Apache孵化器。

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

产品比较

类别ZipkinPinpointSkyWalkingCAT
实现方式拦截请求,发送(HTTP,mq)数据至zipkin服务java探针,字节码增强java探针,字节码增强代码埋点(拦截器,注解,过滤器等)
接入方式基于linkerd或者sleuth方式,引入配置即可javaagent字节码javaagent字节码代码侵入
agent到collector的协议http,MQthriftgRPChttp/tcp
OpenTracing××
颗粒度接口级方法级方法级代码级
全局调用统计×
traceid查询××
报警×
JVM监控××
健壮度****************
数据存储ES,mysql,Cassandra,内存HbaseES,H2mysql,hdfs
github star(截止2021年4月21日)14.3k11.3k16.6k15.3k

PinPoint和skyWalking支持的插件对比

类别PinpointSkyWalking
web容器Tomcat6/7/8,Resin,Jetty,JBoss,WebsphereTomcat7/8/9,Resin,Jetty
JDBCOracle,mysqlOracle,mysql,Sharding-JDBC
消息中间件ActiveMQ, RabbitMQRocketMQ 4.x,Kafka
日志log4j, Logbacklog4j,log4j2, Logback
HTTP库Apache HTTP Client, GoogleHttpClient, OkHttpClientApache HTTP Client, OkHttpClient,Feign
Spring体系spring,springbootspring,springboot,eureka,hystrix
RPC框架Dubbo,ThriftDubbo,Motan,gRPC,ServiceComb
NOSQLMemcached, Redis, CASSANDRAMemcached, Redis