分布式调用链调研(pinpoint,skywalking,jaeger,zipkin等对比)

1. APM简述

    APM (Application Performance Management)是对企业的应用系统进行实时监控,它是用于实现对应用程序性能管理和故障管理的系统化的解决方案。 

2. APM主要解决的问题

  1. 集中式度量系统
  2. 分布式全链接追踪系统
  3. 集中式日志系统(elk)

3. 分布式调用追踪(APM)一览

  1. google的Drapper--未开源,最早的APM
  2. 阿里-鹰眼--未开源
  3. 大众点评——CAT--跨服务的跟踪功能与点评内部的RPC框架集成,这部分未开源且项目在2014.1已经停止维护。服务粒度的监控,通过代码埋点的方式来实现监控,比如: 拦截器,注解,过滤器等,对代码的侵入性较大,集成成本较高。
  4. Hydra-京东: 与dubbo框架集成,对于服务级别的跟踪统计,现有业务可以无缝接入。对于细粒度的兴趣点,需要业务人员手动添加.开源项目已于2013年6月停止维护
  5. PinPoint-naver,字节码探针技术,代码无侵入,体系完善不易修改,支持java,技术栈支持dubbo.其他语言社区支援中
  6. zipkin--java方便集成于springcloud,社区支持的插件也包括dubbo,rabbit,mysql,httpclient等(https://github.com/openzipkin/brave/tree/master/instrumentation),同时支持php,go,js等语言客户端,界面功能较为简单,本身无告警功能,可能需要二次开发。代码入侵度小。
  7. uber-jaeger, Jaeger支持java/c++/go/node/php,在界面上较为完善(对比zipkin),但是也无告警功能。代码入侵度小。dubbo目前无插件支持,可二次开发。
  8. skywalking -华为,类似于PinPoint,目前还在apache孵化中,网上吞吐量对比中强于pinpoint,实际未验证。本身支持dubbo

4. 方案对比

 

pinpoint

zipkin

jaeger

skywalking

OpenTracing兼容

客户端支持语言

java、php

java,c#,go,php等

java,c#,go,php等

Java, .NET Core, NodeJS and PHP

存储

hbase

ES,mysql,Cassandra,内存

ES,kafka,Cassandra,内存

ES,H2,mysql,TIDB,sharding sphere

传输协议支持

thrift

http,MQ

udp/http

gRPC

ui丰富程度

实现方式-代码侵入性

字节码注入,无侵入

拦截请求,侵入

拦截请求,侵入

字节码注入,无侵入

扩展性

trace查询

不支持

支持

支持

支持

告警支持

支持

不支持

不支持

支持

jvm监控

支持

不支持

不支持

支持

性能损失

5. 各方案参考链接

1.pinpoint-naver

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

docker快速体验:https://github.com/naver/pinpoint-docker

 

2.zipkin-推特:

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

页面详解:https://blog.csdn.net/u012394095/article/details/82585863

zipkin于php对接:https://www.colabug.com/1872361.html

 

3.jaeger-uber

部分参考资料:

jaeger简介,部署,入门实践 https://my.oschina.net/u/2548090/blog/1821359

jaeger——java实现 https://my.oschina.net/u/1789379/blog/1551421

Uber分布式追踪系统Jaeger使用介绍和案例(PHP Hprose Go 跨语言调用)

https://segmentfault.com/a/1190000011636957

全链路监控Jaeger搭建实战 https://www.jianshu.com/p/ffc597bb4ce8

jaeger官网快速开始 https://www.jaegertracing.io/docs/1.8/getting-started/

 

4.skywalking(推荐)

github: https://github.com/apache/incubator-skywalking

SkyWalking 分布式追踪系统 https://www.jianshu.com/p/2fd56627a3cf

Apache SkyWalking 5.0中文版图文详解使用手册

http://skywalking.apache.org/zh/blog/2018-12-18-Apache-SkyWalking-5-0-UserGuide.html

skywalking学习笔记 https://juejin.im/post/5ab5b0e26fb9a028e25d7fcb 

6. 参考资料 

    分布式链路追踪技术对比 https://blog.csdn.net/moonpure/article/details/79992855

    回到网易后开源 APM 技术选型与实战 https://www.infoq.cn/article/apm-Pinpoint-practice

    zipkin vs jaeger https://segmentfault.com/a/1190000015308746

    调用链选型之Zipkin,Pinpoint,SkyWalking,CAT https://www.jianshu.com/p/0fbbf99a236e

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值