1、介绍
a、Zipkin是Twitter开源的调用链分析工具,目前基于Spring Cloud Sleuth得到了广泛的使用,特点是轻量,使用部署简单。
GitHub: https://github.com/openzipkin/zipkin
b、Pinpoint是韩国人开源的基于字节码注入的调用链分析,以及应用监控分析工具。特点是支持多种插件,UI功能强大,接入端无代码侵入。
GitHub: https://github.com/naver/pinpoint
c、SkyWalking是国内开源的基于字节码注入的调用链分析以及应用监控分析工具。特点是支持多种插件,UI功能较强,接入端无代码侵入。目前使用厂商最多,版本更新较快,已成为 Apache 基金会顶级项目。
GitHub: https://github.com/apache/skywalking
2、基本信息
类别 | Zipkin | Pinpoint | SkyWalking |
---|---|---|---|
定位 | 分布式追踪系统 | 分布式追踪系统 应用性能监控系统(APM) |
分布式追踪系统 应用性能监控系统(APM) |
研发团队 | Naver团队 | 发起人吴晟,已加入Apache |
3、接入方式
类别 | Zipkin | Pinpoint | SkyWalking |
---|---|---|---|
接入方式 | 基于Linkerd或者Sleuth方式,引入配置即可 | javaagent字节码 | javaagent字节码 |
Agent到Collector的协议 | Http、MQ | Thrift | gRPC |
OpenTracing | √ | × | √ |
k8s | √ | × | √ |
支持语言 | Java、Scala、Node、 Go、Python、Ruby 、 C# |
Java、PHP | Java、C# 、PHP、Node.js |
采集数据 | 系统层:无 应用层:接口执行次数耗时等 业务层:无 |
系统层:CPU、MEM、Disk 应用层:JVM、链路、方法执行次数耗时等 业务层:无 |
系统层:CPU、MEM、Disk 应用层:JVM、链路、方法执行次数耗时等 业务层:无 |
性能损耗 | 中 | 高 | 低 |
4、使用情况分析
类别 | Zipkin | Pinpoint | SkyWalking |
---|---|---|---|
颗粒度 | 接口级 | 方法级 | 方法级 |
全局调用统计 | × | √ | √ |
traceid查询 | √ | × | √ |
报警 | × | √ | √ |
JVM监控 | × | × | √ |
5、监控界面分析
类别 | Zipkin | Pinpoint | SkyWalking |
---|---|---|---|
友好与详细程度 | 功能简单,但是清晰, 可完成基本链路监视功能 |
功能丰富,应用清晰 链路监控能力丰富 |
功能比较丰富,应用清晰 完整的链路监控能力 |
6、存储支持
类别 | Zipkin | Pinpoint | SkyWalking |
---|---|---|---|
存储 | ES、MySQL、Cassandra | Hbase | ES、H2、MySQL、TiDB |
7、社区活跃度
类别 | Zipkinn | Pinpoint | SkyWalking |
---|---|---|---|
STAR | 12.2k | 9.9 | 12.4 |
SkyWalking :已是Apache 基金会顶级项目,社区相当活跃。项目发起人是中国人,我们能够进入官方群(Apache SkyWalking交流群:392443393)和项目发起人吴晟零距离沟通,很多问题能第一时间得到大家的帮助。
Pinpoint:是韩国人开发的,免不了有沟通障碍。
8、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、Spring Boot | Spring、Spring Boot、Eureka、Hystrix |
RPC框架 | Dubbo、Thrift | Dubbo、Motan、gRPC、ServiceComb |
NOSQL | Memcached、Redis、CASSANDRA | Memcached、Redis |
9、性能分析
注:该章节抄录自网上测试分析信息。
场景:模拟了三种并发用户,500,750,1000。使用JMeter测试,每个线程发送30个请求,设置等待时间为10 ms。使用的采样率为1,即100%,这边与生产可能有差别。Pinpoint默认的采样率为20,即50%,通过设置Agent的配置文件改为100%。Zipkin默认也是1。
image.png
网友评论