分布式追踪的起源微服务兴起以来,整个系统架构变得异常庞大复杂,但是服务之间的调用关系,调用消费时间等信息但它仍然是一个半黑盒子。为了能够将被调用的链路串联起来,展示系统的各种指标数据,使系统的链路更加透明,便于故障排除,分布式跟踪应运而生。有一种流行的说法,分布式追踪的起源来自谷歌2010年发表的一篇论文Dapper,aLarge-ScaleDistributedSystemsTracingInfrastructure。但事实上,过去一些大公司已经使用过类似的组件。是的,只是不为人知。当然,即便如此,作为分布式追踪最早的系统性论文,其影响非同一般,可以说是众多分布式追踪实现的参考。百花齐放的Zipkin分布式溯源Zipkin最初是由Twitter开发的开源溯源系统,于2012年开源,Zipkin应用广泛,影响了很多后世。他的传输头是X-B3SkywalkingSkywalking是中国人开发的,后来捐给了Apache基金会的一个开源项目。现在是Apache基金会的顶级项目。PinpointPinpoint由Naver于2012年开发,并于2015年开源。Pinpoint可用于java、php和python。JaegerJaeger最早由Uber开发并于2017年开源,随后捐赠给了CNCF基金会。OpenCensusOpenCensus由谷歌发起。它最初是谷歌内部的跟踪平台,后来开源了。OpenTracingOpenTracing由CNCF托管,拥有比较完善的检测库。简单盘点一下,这段时间涌现出很多知名的分布式追踪开源项目,而且这些项目往往有很多用户。OpenCensus和OpenTracing在上述项目中有两个比较特殊的项目:一个是OpenTracing,它制定了一个统一的平台无关的Trace标准,后来的很多项目比如Jaeger都是基于这个协议的,所以他在那个时候,Trace标准场影响很大;二是OpenCensus,背靠谷歌,不仅实现了Trace,还包含了Metrics,包含了Agent、Collector等一系列的解决方案,可以说是相当完善了。当时,两派可以说是互相拥戴了大量的追随者。一方面是谷歌和微软主导的OpenCensus,另一方面是很多开源项目和厂商使用的OpenTracing。两者可以说各有优缺点。娇媚。直到有一天...Opentelemetry诞生,经过一段时间的发展,OpenCensus和OpenTracing宣布合并,以整合两者的优势。两者合并就是后来大名鼎鼎的Opentelemetry。Spoon诞生:OpenTracing支持,OpenCensus支持,一开始有经验丰富的社区人员,背后有互联网巨头的支持。Opentelemetry的目标Opentelemetry旨在构建一个包括Trace、指标和Logging的分布式跟踪解决方案。它提供了统一的标准,提供了JavaAgent的解决方案,提供了Collector的实现等等。这些我会在后面的系列文章中一一介绍。总结这是我的Opentelemetry系列文章的第一篇,主要介绍分布式追踪的一些往事和Opentelemetry诞生的历史。后续我会从Opentelemetry的相关使用、原理、系统等方面发布系列文章,敬请期待。参考文章[1]https://www.cncf.io/blog/2019...[2]https://www.cncf.io/blog/2021...[3]Dapper,一个大型分布式系统追踪基础设施[4]https://bigbully.github.io/Da...[5]https://developers.redhat.com...
