簡介
Zipkin是Twitter開源的調用鏈分析工具,目前基於springcloud sleuth獲得了普遍的使用,特色是輕量,使用部署簡單。html
Pinpoint是韓國人開源的基於字節碼注入的調用鏈分析,以及應用監控分析工具。特色是支持多種插件,UI功能強大,接入端無代碼侵入。java
SkyWalking是本土開源的基於字節碼注入的調用鏈分析,以及應用監控分析工具。特色是支持多種插件,UI功能較強,接入端無代碼侵入。目前已加入Apache孵化器。mysql
CAT是大衆點評開源的基於編碼和配置的調用鏈分析,應用監控分析,日誌採集,監控報警等一系列的監控平臺工具。git
基本原理
類別 | 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 |
社區活躍度
截止到2018年5月14日github
類別 | Zipkin | Pinpoint | SkyWalking | CAT |
---|---|---|---|---|
STAR | 8.4k | 5.9k | 3.3k | 4.9k |
性能分析
摘自:https://juejin.im/post/5a7a9e0af265da4e914b46f1web
模擬了三種併發用戶:500,750,1000。使用jmeter測試,每一個線程發送30個請求,設置思考時間爲10ms。使用的採樣率爲1,即100%,這邊與生產可能有差異。pinpoint默認的採樣率爲20,即50%,經過設置agent的配置文件改成100%。zipkin默認也是1。組合起來,一共有12種。下面看下彙總表:spring
![](http://static.javashuo.com/static/loading.gif)
從上表能夠看出,在三種鏈路監控組件中,skywalking的探針對吞吐量的影響最小,zipkin的吞吐量居中。pinpoint的探針對吞吐量的影響較爲明顯,在500併發用戶時,測試服務的吞吐量從1385下降到774,影響很大。而後再看下CPU和memory的影響,在內部服務器進行的壓測,對CPU和memory的影響都差很少在10%以內。sql
skywalking:https://skywalkingtest.github.io/Agent-Benchmarks/README_zh.htmlspringboot