簡介
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)評開源的基于編碼和配置的調(diào)用鏈分析须板,應(yīng)用監(jiān)控分析,日志采集兢卵,監(jiān)控報警等一系列的監(jiān)控平臺工具习瑰。
基本原理
類別 | Zipkin | Pinpoint | SkyWalking | CAT |
---|---|---|---|---|
實(shí)現(xiàn)方式 | 攔截請求,發(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 |
---|---|---|---|---|
顆粒度 | 接口級 | 方法級 | 方法級 | 代碼級 |
全局調(diào)用統(tǒng)計 | × | √ | √ | √ |
traceid查詢 | √ | × | √ | × |
報警 | × | √ | √ | √ |
JVM監(jiān)控 | × | × | √ | √ |
頁面UI展示
類別 | Zipkin | Pinpoint | SkyWalking | CAT |
---|---|---|---|---|
健壯度 | ** | ***** | **** | ***** |
數(shù)據(jù)存儲
類別 | Zipkin | Pinpoint | SkyWalking | CAT |
---|---|---|---|---|
數(shù)據(jù)存儲 | ES雁乡,mysql,Cassandra,內(nèi)存 | 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 |
社區(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測試,每個線程發(fā)送30個請求珠月,設(shè)置思考時間為10ms扩淀。使用的采樣率為1,即100%啤挎,這邊與生產(chǎn)可能有差別驻谆。pinpoint默認(rèn)的采樣率為20,即50%庆聘,通過設(shè)置agent的配置文件改為100%胜臊。zipkin默認(rèn)也是1。組合起來伙判,一共有12種象对。下面看下匯總表:
從上表可以看出,在三種鏈路監(jiān)控組件中宴抚,skywalking的探針對吞吐量的影響最小勒魔,zipkin的吞吐量居中甫煞。pinpoint的探針對吞吐量的影響較為明顯,在500并發(fā)用戶時沥邻,測試服務(wù)的吞吐量從1385降低到774危虱,影響很大。然后再看下CPU和memory的影響唐全,在內(nèi)部服務(wù)器進(jìn)行的壓測,對CPU和memory的影響都差不多在10%之內(nèi)蕊玷。
skywalking:https://skywalkingtest.github.io/Agent-Benchmarks/README_zh.html