分布式服务监控zipkin、Pinpoint、SkyWalkin

2020-02-13  本文已影响0人  天生小包

1、介绍

a、Zipkin是Twitter开源的调用链分析工具,目前基于Spring Cloud Sleuth得到了广泛的使用,特点是轻量,使用部署简单。

GitHub: https://github.com/openzipkin/zipkin

image.png
b、Pinpoint是韩国人开源的基于字节码注入的调用链分析,以及应用监控分析工具。特点是支持多种插件,UI功能强大,接入端无代码侵入。

GitHub: https://github.com/naver/pinpoint

image.png
c、SkyWalking是国内开源的基于字节码注入的调用链分析以及应用监控分析工具。特点是支持多种插件,UI功能较强,接入端无代码侵入。目前使用厂商最多,版本更新较快,已成为 Apache 基金会顶级项目。

GitHub: https://github.com/apache/skywalking

image.png

2、基本信息

类别 Zipkin Pinpoint SkyWalking
定位 分布式追踪系统 分布式追踪系统
应用性能监控系统(APM)
分布式追踪系统
应用性能监控系统(APM)
研发团队 Twitter 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
结论:
1、SkyWalking: 探针对吞吐量的影响最小,默认策略比较保守,对性能损耗很小。
2、Zipkin: 探针对吞吐量居中。
3、Pinpoint: 探针对吞吐量的影响较为明显,在500并发用户时,测试服务的吞吐量从1385降低到774,影响很大,由于采集信息太过详细,所以对性能的损耗最大。
上一篇 下一篇

猜你喜欢

热点阅读