簡介
Zipkin是Twitter開源的調(diào)用鏈分析工具,目前基于springcloud sleuth得到了廣泛的使用,特點(diǎn)是輕量,使用部署簡單。
Pinpoint是韓國人開源的基于字節(jié)碼注入的調(diào)用鏈分析,以及應(yīng)用監(jiān)控分析工具。特點(diǎn)是支持多種插件,UI功能強(qiáng)大,接入端無代碼侵入。
SkyWalking是本土開源的基于字節(jié)碼注入的調(diào)用鏈分析,以及應(yīng)用監(jiān)控分析工具。特點(diǎn)是支持多種插件,UI功能較強(qiáng),接入端無代碼侵入。目前已加入Apache孵化器。
CAT是大眾點(diǎn)評(píng)開源的基于編碼和配置的調(diào)用鏈分析,應(yīng)用監(jiān)控分析,日志采集,監(jiān)控報(bào)警等一系列的監(jiān)控平臺(tái)工具。
基本原理
類別 | Zipkin | Pinpoint | SkyWalking | CAT |
---|---|---|---|---|
實(shí)現(xiàn)方式 | 攔截請(qǐng)求,發(fā)送(HTTP,mq)數(shù)據(jù)至zipkin服務(wù) | java探針,字節(jié)碼增強(qiáng) | java探針,字節(jié)碼增強(qiáng) | 代碼埋點(diǎn)(攔截器,注解,過濾器等) |
接入
類別 | Zipkin | Pinpoint | SkyWalking | CAT |
---|---|---|---|---|
接入方式 | 基于linkerd或者sleuth方式,引入配置即可 | javaagent字節(jié)碼 | javaagent字節(jié)碼 | 代碼侵入 |
agent到collector的協(xié)議 | http,MQ | thrift | gRPC | http/tcp |
OpenTracing | √ | × | √ | × |
分析
類別 | Zipkin | Pinpoint | SkyWalking | CAT |
---|---|---|---|---|
顆粒度 | 接口級(jí) | 方法級(jí) | 方法級(jí) | 代碼級(jí) |
全局調(diào)用統(tǒng)計(jì) | × | √ | √ | √ |
traceid查詢 | √ | × | √ | × |
報(bào)警 | × | √ | √ | √ |
JVM監(jiān)控 | × | × | √ | √ |
頁面UI展示
類別 | Zipkin | Pinpoint | SkyWalking | CAT |
---|---|---|---|---|
健壯度 | ** | ***** | **** | ***** |
數(shù)據(jù)存儲(chǔ)
類別 | Zipkin | Pinpoint | SkyWalking | CAT |
---|---|---|---|---|
數(shù)據(jù)存儲(chǔ) | ES,mysql,Cassandra,內(nèi)存 | Hbase | ES,H2 | mysql,hdfs |
PinPoint和skyWalking支持的插件對(duì)比
類別 | 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 |
社區(qū)活躍度
截止到2018年5月14日
類別 | Zipkin | Pinpoint | SkyWalking | CAT |
---|---|---|---|---|
STAR | 8.4k | 5.9k | 3.3k | 4.9k |
性能分析
摘自:https://juejin.im/post/5a7a9e0af265da4e914b46f1
模擬了三種并發(fā)用戶:500,750,1000。使用jmeter測試,每個(gè)線程發(fā)送30個(gè)請(qǐng)求,設(shè)置思考時(shí)間為10ms。使用的采樣率為1,即100%,這邊與生產(chǎn)可能有差別。pinpoint默認(rèn)的采樣率為20,即50%,通過設(shè)置agent的配置文件改為100%。zipkin默認(rèn)也是1。組合起來,一共有12種。下面看下匯總表:
從上表可以看出,在三種鏈路監(jiān)控組件中,skywalking的探針對(duì)吞吐量的影響最小,zipkin的吞吐量居中。pinpoint的探針對(duì)吞吐量的影響較為明顯,在500并發(fā)用戶時(shí),測試服務(wù)的吞吐量從1385降低到774,影響很大。然后再看下CPU和memory的影響,在內(nèi)部服務(wù)器進(jìn)行的壓測,對(duì)CPU和memory的影響都差不多在10%之內(nèi)。
skywalking:https://skywalkingtest.github.io/Agent-Benchmarks/README_zh.html