如果把4个「链路追踪」组件放到一个群里,他们会聊些什么?

如果把4个「链路追踪」组件放到一个群里,他们会聊些什么?

聊天记录第二弹来袭了,想看第一弹的在这里:如果把四个消息队列都拉到一个群里,他们会聊些什么?

本篇我会从 7 大分布式链路追踪组件的历史背景、技术选型对比、使用经验分享等方面来进行总结分享,相信会给大家带来一些启发。

分布式链路追踪概念:运行时通过某种方式记录下各服务之间的调用过程,再通过可视化 UI 方式帮助相关人员快速定位到故障点。现如今,分布式链路追踪已经成为微服务架构性能监控底层基础设施,没有它,性能分析人员就像盲人摸象,根本无法彻底了解服务间链路通信的全过程。

关于链路追踪的原理可以看我之前写的一篇:在容器技术医院五天,我把「链路追踪」整明白了

发展史

CAL 和 CAT 傻傻分不清

如果把4个「链路追踪」组件放到一个群里,他们会聊些什么?

eBay-CAL:咦,这是什么群啊?

点评-CAapache和tomcat区别T:大佬好啊,我是你的小迷弟。

eBay-CAL:你好你好,你的名字和我的怎么这么像?我差点以为我和你是同一个。。

Google-Dapper:CAL 老哥java面试题,你不知道吧,CAT 就是基于你进行改造的,嘿嘿存储器中存取速度最快的是~

点评-C监控摄像头品牌排行AT:老大,因为当时您那边没有开源,我基于您的设计理念,将 CAL 在大众点评发扬光大了,现在也开源了~

涉及的故事

如果把4个「链路追踪」组件放到一个群里,他们会聊些什么?

eBay 2002 年,业务快速增长,流量猛增,非常需要一款链路监控工具,CAL 应运而生,被称作 eBay 的三大神器之一。CA比特币L 全称:Centralized Application Logging

老吴从 eBay 跳槽到大apache怎么读众点评后,主导研发了 CAT,2011 年诞生。所以 CAT 和 CAL 有很多相似存储过程的地方。CAT 在国内很早就开源了,采用 Java 语言编写,社区也比较活跃。CAT 全称:Cespring面试题ntralized Application Tspringbootacking。

Dapper 的继承者

如果把4个「链路追踪」组件放到一个群里,他们会聊些什么?

如果把4个「链路追踪」组件放到一个群里,他们会聊些什么?

Twitter-ZipKin:Dapper Big Old!我深刻学习了您发表java怎么读的 Dapper 论文,受益良多

Naver-Pinpoint:Dapper 대장부!

Apache-Skywalking:Pinpoint 大佬好!

Uber-Jaeger:Zipking Big Old!存储容量单位

点评-CAT:你们几Apache个什么意思?把我和 CAL 老大晾到一边了?

eBay-CAL:时隔 19 年,竟然涌现了这么多链路追踪组件。。

Google-Dapper:没想到我的那篇 D笔趣阁apper 论文竟然有这容器是什么么大的功效。

涉及的故事

Goog容器英文le-java环境变量配置Dapper:Google 公司内部有一款链路追踪组件 Dapper,非常强大,但是没有开源。在 2010 年,Google 发表了一篇 Dspringcloudapper 的论文,介绍了 Dapper 链路追踪的原理,后来成为多家链路追踪组件的鼻祖。

Twitter-ZipKin:米国的 Twitter 公司大家应该知道吧Apache,类似java怎么读于我们的新浪微博,而 Zi容器是什么pkin 就是他们的链路追踪产品,在 2012 年早期开源,基于 Dapper 论文开发。

Navjava环境变量配置er-Pinpoint:Naver 是韩国的一家公司,聊天记录里面的打招呼 대장부 翻译过来就是“大佬好”。Pinpoint 也是基于 Dapper 论文的思想进行开发,功能丰富,2012 年开源,也是非常受欢迎的一监控摄像头款产品。

Uber-Jaeger:米国的 Uber 大家应该熟监控摄像头悉,曾经在国内的打车市场非常火爆,不过现在打车软件都是滴滴和其他平台了。Jaeger 时 U程序员计算器ber 公司的一款链路追踪产品,在 2016 年开源,吸收了 Zipkin 的设计思想,用的语言是 Golang,可以认为是 Zipkin 的克隆版,但是也有它自身的优点和亮点。

Apache-Skywalking:Skywalking 是国产的,Made In China,项目发起人吴晟结合了 OneAPM + PinPoint,打造的一款链路追踪组java模拟器件,Skywalking 已经进入 Apache 孵化,国内社区活跃,可以进官方群,很多问题都可以第一时程序员客栈间得到大家的帮助。

Skywalking VS PinPoint

UI 界面

如果把4个「链路追踪」组件放到一个群里,他们会聊些什么?

Apache-Skywalking:@Naver-Pinpoint,兄弟,你说的java环境变量配置什么鸟语?

Naver-PinPoint:韩语,看不懂么,非要我发中文?

Apache-Skspringywalking:对啊,我早就看你不爽了,大家都说你界面好看容器技术,也就只有界面好看吧!哼

Naver-PinPoint:Chinese Man,我不仅apache翻译界面好看,我的 Jspring翻译VM 的监控,程序员是做什么的跟踪的细粒度也是无人能敌。

Twitter-ZipKin:确实,比比特币行情我的界面好看多了。。

Apache-Skywalking:ZipKin监控系统 兄弟,你可以看下我的,定制 U程序员工作一年后工资I 已经有了,也还javascript不错的。

涉及的故事

Skywrocketmq如何保证消息不丢失alking 和 Pin存储空间清理Point 都是非常优秀的链路追踪组件,Skywalking 和 PinPoint 有很多相似的地方,比如都是字监控节码注入,不侵入的。

而 PinPoint 的界面和 ZipKin、Skywalking 比较来说,确实要略胜一筹存储。不过daocloud根据Pinpoint的风格为skywalking定制了一款 UI,界面也很拉风了。所以只比较原生 UI 的话,PinP程序员是做什么的oint 胜出。

容器区支持

如果把4个「链路追踪」组件放到一个群里,他们会聊些什么?

Apache-Skywalking:韩国骑马哥,你不要得意,我在其他几个方面还是比你强的。

Naver-PinPoinjava培训t:那你说说看,洗耳恭听spring面试题javaee

Apache-Skywalking:在社区支持方面,我可是颇受中国程序员的喜爱哦!你的中国话还得多练下哟,思密容器苗达!

点评-CAT:支持国产!国产 yyds!

Naver-PinPoint:受教了,思密达。

涉及的故事

Skywalking 和 CAT: 这两款链路追踪组件都是国产的,对国内用户更友好,香!另外 CAT 早期开源的,现在社区不活跃了。Skywalkin程序员怎么学g 还有官方 QQ 交流群,我天,这个要吹爆!

思密达:韩语的语气助词,用在句尾,表示尊敬。PinPoint 对国内社区这一块确实有心无力,毕竟apache服务器国人看汉语更方便。

RoctetMQ:阿里开源的消息队列,现在交给 Apache 维护了,国内大厂用得很多。监控可以保存多少天国产 yyds。

优势对比

如果把4个「链路追踪」组件放到一个群里,他们会聊些什么?!

Apache-Skywalking:在性能方面,我是最强的。

Apache-Skywalking:因为你跟踪的细粒度太细了,所以耗时更多。

Apache-Skywjava模拟器alking:另外呢,在组件支持这一方面,我也是非常全面的,特别是 R存储过程ocketMQ,嘿嘿,又是国产的~

RocketMQ存储过程:我来啦~

Naver-PinPoinapache和tomcat区别t:这句你赢了apache服务器

涉及的故事

  • 性能方面

由于Pinpoint采集信息太过详细,所以,它对性能的损耗最大。而springskywalking默认策略比较保守,对性能损耗很小。 有网友做过压力存储容量测试,对比如下:

[外链图片转存中...(img-i7ttml0a-1652020908378)]

  • 组件支持:Skywalking 对组件的支持真存储的很全,比如对 RPC 框架的支持,消息队列的支持,Redis 客户端的支持,日志框架的支持,都要胜于 PinPoint,但是对于 WEB 容器、数据库支持方面,PinPoint 略胜一筹。

[外链图片转存中...(img-st9rpRpY-1652020908378)]

  • 告警:Pinpoint和skywalking都支持常用的告警规则配置,但是skywalking采用webhooks的方式就灵活很多:短信通知,邮件通知,微信通知都是可以支持的。而Pinpoint只能sms/email通知,并且还需要引入MySQL存储,增加了整个系统复杂度。所以,告警方面,skywalking更胜监控眼一筹
  • PinPoint 的优势:追踪数据粒程序员度非常细、功能强大的用户界面。支持海量的日志存储。
  • PinPoint 的劣势:比较重负载的系统(运行它必须先维javascript护一套 HBase),严重制约了它的适用范围。
  • Sk消息中间件的作用ywalking 的优势:非常活跃的中文社区,支持多种语言springmvc的工作原理的探针,对国产开源软件支持很全面,而且性比特币能损耗较小spring面试题。二次开发也要优于 PinPoint。

[外链图片转存中...(img-MlgPv8B8-1652020908378)]

ZipKin

如果把4个「链路追踪」组件放到一个群里,他们会聊些什么?

Zipkin:兄弟们,在 Spring Cloud 家族中,我可是被应用得很多哦,快来夸夸我。

Jaeger:好啦,知道你有靠山。

Sleuth:ZipKin,你的成功可别忘了我呀!

ZipKin:发红包给 Sleuth。

Dapper:领取了apache是干嘛用的红包。

Sleuth:你抢我红包干啥?

Dapper:不好意思,条件反射。话说你们不应该感谢我么?

涉及的故事

Spring Cloud 引入 Sleuth 组件,就可以获取到调RocketMQ用链路,但只能通过控制台的输出信息来看,不太方便。

Zipkin 油然而生,rocketmq如何保证消息不丢失一个图形化的工具。Zipkin 是 Twitter 开源的分布式跟踪系统,主要用来用来收集rocketmq和rabbitmq系统的时序数据,进而可以跟踪系统的调用问题。

而且引入了 Zipkin 组件后spring翻译,就不需要引入 Sleuth 组件了,因为 Zipkin 组件已经帮我们引入了。

关于 Spring Cloud 整合 Zipkin 可以看我之前java写的这篇:在医院五天,我把「链路java是什么意思追踪」整明白了

Zipkin 参照 Google Dapper 的涉及理念进行开发的,所以 Dapper 才会说感谢他。

报表

如果把4个「链路追踪」组件放到一个群里,他们会聊些什么?

Skywalking:ZipKin 兄弟,你的报表功能什么时候能增强下啊?

CAT:+1

PinPoint + 1

ZipKin存储容量单位:.....

涉及的故事

ZipKin 的 APM 的报表能力比较薄弱,有报表需求的,建议选择监控摄像头品牌排行其他链路追踪组件。APM(Application Performance Management &aspringmp; Monitoring) 即应用性能管理和监控,主要通容器的容积一定比它的体积小过对程序的存储诸天性能指标进行分析和监容器控,来帮助开发、测试apache的漏洞有、运维人员来掌握程序的性能和运行情况。

总结

来一张几个常用分布式链路追踪组件的apache是干嘛用的对比图:

如果把4个「链路追踪」组件放到一个群里,他们会聊些什么?

大家选用的是哪款分布式链路追踪组件呢?

参考资料容器

https://githu监控安装流程b.com/apache/skywalking

https://github.com/dianping/cat

https://static.googleusercontent.com/media/research.google.com/zh-CN//arjava环境变量配置chive/papers/dapper-2010-1.pdf

https://spring.io/projects/spring-cloud-sleuth

https://skywalking.apache.org/zh/2019-02-2java怎么读4-skywalking-pk-pinpoint/

https://juej容器中有某种酒精含量的酒精溶液in.cn/post彼岸之主/684程序员怎么学4903560732213261

httpapache怎么读s://time.gee存储容量单位kbang.org/column/article/441338

https://www.cnblogs.com/zhangs1986/p/8879744.html

https://techspring翻译.meituan.com/2018/11/01/cat-in-depth监控摄像头品牌排行-jav存储器a-application-monitoring.html

https://www.cnblogs.com/y程序员需要什么学历yhh/p/6106472.html