链路追踪之选型ZipkinPinpointSkyWalkingCAT
Posted 第三眼的思绪
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了链路追踪之选型ZipkinPinpointSkyWalkingCAT相关的知识,希望对你有一定的参考价值。
简介
- Zipkin是Twitter开源的调用链分析工具,目前基于springcloud sleuth得到了广泛的使用,特点是轻量,使用部署简单。
- Pinpoint是韩国人开源的基于字节码注入的调用链分析,以及应用监控分析工具。特点是支持多种插件,UI功能强大,接入端无代码侵入。
- SkyWalking是本土开源的基于字节码注入的调用链分析,以及应用监控分析工具。特点是支持多种插件,UI功能较强,接入端无代码侵入。目前已加入Apache孵化器。
- CAT(Central Application Tracking)是大众点评开源的基于编码和配置的调用链分析,应用监控分析,日志采集,监控报警等一系列的监控平台工具。
对比
类别 | Zipkin | Pinpoint | SkyWalking | CAT |
---|
实现方式 | 拦截请求,发送(HTTP,mq)数据至zipkin服务 | java探针,字节码增强 | java探针,字节码增强 | 代码埋点(拦截器,注解,过滤器等) |
接入
类别 | Zipkin | Pinpoint | SkyWalking | CAT |
---|
接入方式 | 基于linkerd或者sleuth方式,引入配置即可 | javaagent字节码 | javaagent字节码 | 代码侵入 |
agent到collector的协议 | http,MQ | thrift | gRPC | http/tcp |
OpenTracing | √ | × | √ | × |
分析
类别 | Zipkin | Pinpoint | SkyWalking | CAT |
---|
颗粒度 | 接口级 | 方法级 | 方法级 | 代码级 |
全局调用统计 | × | √ | √ | √ |
traceid查询 | √ | × | √ | × |
报警 | × | √ | √ | √ |
JVM监控 | × | × | √ | √ |
页面UI展示
类别 | Zipkin | Pinpoint | SkyWalking | CAT |
---|
健壮度 | ** | ***** | **** | ***** |
数据存储
类别 | Zipkin | Pinpoint | SkyWalking | CAT |
---|
数据存储 | ES,mysql,Cassandra,内存 | Hbase | ES,H2 | mysql,hdfs |
PinPoint和skyWalking支持的插件对比
类别 | Pinpoint | SkyWalking |
---|
web容器 | Tomcat6/7/8,Resin,Jetty,JBoss,Websphere | Tomcat7/8/9,Resin,Jetty |
JDBC | Oracle,mysql | Oracle,mysql,Sharding-JDBC |
消息中间件 | ActiveMQ,RabbitMQ | RocketMQ 4.x,Kafka |
日志 | log4j, Logback | log4j,log4j2, Logback |
HTTP库 | Apache HTTP Client,GoogleHttpClient,OkHttpClient | Apache HTTP Client, OkHttpClient,Feign |
Spring体系 | spring,springboot | spring,springboot,eureka,hystrix |
RPC框架 | Dubbo,Thrift | Dubbo,Motan,gRPC,ServiceComb |
NOSQL | Memcached, Redis, CASSANDRA | Memcached,Redis |
社区活跃度
类别 | Zipkin | Pinpoint | SkyWalking | CAT |
---|
STAR | 15.2k | 12k | 18.8k | 4.9k |
性能
摘自: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%之内。
以上是关于链路追踪之选型ZipkinPinpointSkyWalkingCAT的主要内容,如果未能解决你的问题,请参考以下文章
链路追踪--选型/对比/工具/方案/分布式
布道微服务_12服务追踪系统选型与常见方案
Spring Cloud系列之链路追踪
布道微服务_12服务追踪系统选型与常见方案
APM监控-分布式系统服务跟踪技术选型参考
微服务实践之全链路追踪(sleuth,zipkin)详解-SpringCloud(2021.0.x)-4