监控软件选型Zipkin jaeger elastic apm SkyWalking Pinpoint

Zipkinjaegerelastic apmSkyWalkingPinpoint
简介Zipkin早于Jaeger,是Google Dapper的开源版本,由Twitter进一步开发。Zipkin基于Java语言的应用程序,其中包含很多服务,每个服务都实现Zipkin具体的某一个功能,并包括一个用户界面和用于跟踪软件系统框架的界面。每个服务还提供了一系列存储引擎来持久存储数据,例如内存数据库,MySQL,Cassandra和Elasticsearch。Jaeger由Uber创建,并用Go语言编写。它除了Zipkin的功能集外,Jaeger还提供了动态采样,REST API,基于ReactJS的UI界面,以及对Cassandra和Elasticsearch内存数据存储的支持。为了实现这些功能,Jaeger相比Zipkin采取了一种不同的,更分散的方法。 Jaeger的体系结构包括一个客户端,该客户端向代理发出跟踪,代理监听入站跨度(spans)并将其路由到收集器。然后,收集器将验证,转换并保留跨度(spans)。 Jaeger的分布式体系结构使其具有高度可扩展性。Jaeger还具有独特的数据收集方式:与其他尝试收集轨迹和跨度(spans)的系统不同,Jaeger会对监视的数据进行动态采样。这种方法不仅可以处理突然的流量激增,而且可以提高Jaeger的整体性能。Elastic stack在6.3版本开始推出了APM功能。ElasticAPM是基于Elastic Stack构建的应用程序性能监视系统,它可以嵌入应用进程内部,实时采集各种运行指标并传输到elasticsearch平台进行聚合统计,通过kibana界面端展示应用系统性能处理能力。SkyWalking是本土开源的基于字节码注入的调用链分析,以及应用监控分析工具。特点是支持多种插件,UI功能较强,接入端无代码侵入。目前已加入Apache孵化器Pinpoint是韩国人开源的基于字节码注入的调用链分析,以及应用监控分析工具。特点是支持多种插件,UI功能强大,接入端无代码侵入。
OpenTracing兼容
server端语言javagogojava
客户端支持语言java,c#,go,php,js等java/c++/go/node/php/pythonjava/go/node/php/python等java, .net core,nodejs,php
传输协议支持http/AMQP/Kafka/Scribeudp/httphttp/AMQP/KafkagRPC,httpthrift
实现方式拦截请求,发送(HTTP,mq)数据至zipkin服务、侵入性强拦截请求,侵入java探针,字节码增强,无侵入性java探针,字节码增强,无侵入性java探针,字节码增强、无侵入性
接入方式基于linkerd或者sleuth方式,引入配置即可java agent字节码java agent字节码java agent字节码
全局调用统计×××
trace查询支持支持支持支持不支持
告警支持不支持不支持支持支持
jvm监控不支持不支持支持支持支持
页面ui丰富度
存储方式ES,mysql,Cassandra,内存ES,kafka,Cassandra,内存ESES,H2,mysql,TIDB,sharding sphereHbase
性能损耗中等中等
社区活跃度github15.3kgithub15.6kgithub apm server 987github19.2kgithub12.1k
界面功能较为简单,本身无告警功能,可能需要二次开发。有代码入侵性在界面上较为完善(对比zipkin),但是也无告警功能。有代码入侵性。dubbo目前无插件支持,可二次开发。字节码增强,性能损耗低,无代码入侵性,集成容易,与logging能统一在kibana中展示完全无侵入,性能损耗低,界面完善,支持应用拓扑图及单个调用链查询,功能比较完善(zipkin + pinpoint)完全无侵入, 仅需修改启动方式,界面完善,功能细致。不支持查询单个调用链, 对外表现的是整个应用的调用生态,收集性能的损耗比较多,支持的存储比较少。

结论:

zipkin框架:仅支持spring cloud,不支持dubbo,功能及其简单,集成容易,与jaeger一样但也有较强的侵入性;
zipkin、jaeger就被排除了,接下来重点看pinpoint和skywalking、elastic apm的对比:
三者对代码都没有侵入性,使用java探针字节码增加技术,监控能力相当,最主要的一个区别在于底层数据库
1、Pinpoint只支持HBase,且扩展代价较大,其支持的查询一定是在时间的基础上(Pinpoint通过鼠标圈定一个时间范围后查看这个范围内的Trace信息),且pinpoint收集链路信息的性能损耗比skywalking高得多,尚未支持pinpoint不支持sharding-jdbc;
2、skywalking和elastic apm底层使用的是elasticSearch数据库,skywalking可以多个维度任意组合查询,例如:时间范围,服务名,Trace状态,请求路径,TraceId等;elastic apm支持使用sql的方式查询,不相上下。elastic apm在kibana中有界面直接展示,如果项目中已经用了elk的话会比较合适。skywalking则是有自己的ui界面展示。

总的来说:skywalking和elastic apm区别不大,活跃度方面elastic apm不及skywalking,但是官方的支持和文档资料也挺齐全的,也不会有啥障碍。建议如果上了elk的话选择elastic apm,否则上skywalking

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Zip是一个开源的分布式跟踪系统,用于收集、存储和展示微服务架构中的请求链路追踪数据。通过集成ZipkinElasticsearch,可以将Zipkin的跟踪数据持久化到Elasticsearch中,便于后续的查询和分析。 在部署ZipkinElasticsearch之前,首先需要安装和配置Elasticsearch环境。可以使用Docker来快速搭建一个Elasticsearch容器,并指定相关的配置参数。在安装过程中,需要创建一个配置文件elasticsearch.yml,其中包含了一些必要的配置项,例如监听的IP地址、跨域配置等。 安装完Elasticsearch后,可以通过访问http://localhost:9200来验证是否安装成功。接下来,可以将Zipkin配置为使用Elasticsearch作为存储介质,将跟踪数据持久化到Elasticsearch中。具体的配置方式可以参考Zipkin的官方文档或者相关的博客文章。 通过集成ZipkinElasticsearch,可以更好地管理和分析微服务架构中的请求链路追踪数据,提供更好的性能监控和故障排查的能力。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [zipkin学习--08--Springboot 集成 Zipkin--持久化到elasticsearch](https://blog.csdn.net/ylx814056815/article/details/120258750)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [分布式日志分析系统(二):Zipkin的介绍以及在Elasticsearch的部署](https://blog.csdn.net/sv2008337/article/details/81238773)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值