我厂有大量手袋订单外发,宝应百度seo,快速收录提交入口,设计制作一个保温杯教学反思目录
Google Dapper
Twitter Zipkin
Uber Jaeger
OpenTracing 和 OpenCensus
OpenTelemetry
小结 分布式链路追踪是现代云计算和微服务架构中一个关键技术#xff0c;可以让开发者和运维团队理解和监控服务请求在复杂系统中的完整流转路径。分布式链路追踪技术的发展经历…目录
Google Dapper
Twitter Zipkin
Uber Jaeger
OpenTracing 和 OpenCensus
OpenTelemetry
小结 分布式链路追踪是现代云计算和微服务架构中一个关键技术可以让开发者和运维团队理解和监控服务请求在复杂系统中的完整流转路径。分布式链路追踪技术的发展经历了从早期的专有解决方案到现代的开源和标准化的过程本文讲解一下分布式链路追踪标准的演进过程。
Google Dapper
Google 于 2010 年发布的题为《Dappera Large-Scale Distributed Systems Tracing Infrastructure》的论文是分布式链路追踪的一个重要里程碑。这篇论文详细描述了 Google 内部使用的分布式追踪系统的设计和实现方法。Dapper 的目标是提供低开销、应用级的链路追踪系统能够收集请求在分布式系统的流转数据。该系统的设计和实现方式为后来的分布式追踪技术奠定了基础。
Dapper 的核心概念包括
Span表示一个操作或函数调用的时间跨度。Trace由多个 span 组成代表一个请求的完整生命周期。Sampling为了降低数据收集的开销Dapper 采用了抽样技术只追踪一部分请求。
Twitter Zipkin
受到 Dapper 的启发Twitter 开发了自己的分布式追踪系统 Zipkin。Zipkin 是第一个被广泛采用的开源的分布式链路追踪系统提供了数据收集、存储和查询的功能以及友好的 ui 界面来展示追踪信息。
Zipkin 的架构包括
Collector负责接收各服务发送的追踪数据。Storage追踪数据的存储系统可以是 SQL 数据库、Cassandra 或 Elasticsearch。API提供数据查询的接口。Web UI用于展示追踪信息的系统。
Zipkin 的开源特性使其在社区中迅速流行许多公司开始使用并贡献代码。
Uber Jaeger
Uber 在内部面临与 Twitter 类似的问题于是开发了自己的链路追踪系统 Jaeger。Jaeger 在设计上受到了 Dapper 和 Zipkin 的启发并引入了一些新的特性和概念比如
自适应采样可以动态调整采样率以在性能和数据质量之间取得平衡。高级查询功能提供了更加强大和灵活的查询能力。端到端追踪跟踪请求从开始到结束的完整路径。
Jaeger 后来也被开源并且成为云原生计算基金会CNCF的托管项目。Jaeger 的加入进一步加强了分布式链路追踪技术在云原生生态系统中的地位并得到了更广泛的社区支持。成为了该领域的重要项目。
OpenTracing 和 OpenCensus
随着分布式链路追踪技术的日益流行有一个问题也日益突出不同的链路追踪系统和工具之间缺乏兼容性如果使用了一个链路追踪系统就很难切换到另一个了。为了解决这个问题产生了两个重要的项目OpenTracing 和 OpenCensus。
OpenTracing 旨在提供一套统一的、厂商无关的链路追踪 API 和规范定义了一套标准的接口允许开发者在不同的链路追踪系统之间切换而无需修改代码。OpenTracing 的目标是成为链路追踪数据的中间层让链路追踪工具的选择成为运行时决策而不是设计时决策。OpenTracing 包括了 API 规范、实现该规范的框架和库以及项目文档。
OpenCensus 是由 Google 发起的项目与 OpenTracing 类似的是都支持 Trace。但相比 OpenTracing 增加了更多的功能包括新增了对 Metrics 的支持不仅制定了规范还实现了 Agent 和 Collector。
虽然 OpenTracing 和 OpenCensus 有着相似的目标但它们在实现方式和社区支持上存在差异这也导致了一定程度的分裂。
OpenTelemetry
为了解决 OpenTracing 和 OpenCensus 之间的分歧并统一标准两个项目合并成为了 OpenTelemetry 项目。OpenTelemetry 旨在建立一个全面的可观测性工具集包括了 Metrics、Tracing、Logs 和日志收集功能。OpenTelemetry 与厂商、平台无关不提供后端服务。用户可根据自己的需求将数据导出到不同后端例如 Prometheus、Zipkin、Jaeger 和各云厂商的可观测服务。
OpenTelemetry的关键特性包括
统一的 API 和 SDK定义了 Metrics、Tracing、Logs 几种类型的标准并提供了相关的适配了各种语言的 SDK多语言支持支持多种编程语言和框架。可插拔架构可以轻松地将数据导出到不同的后端分析工具。 OpenTelemetry 的目标是成为分布式链路追踪和监控的事实标准通过提供一个全面的解决方案试图适应不断发展的分布式系统的需求。
小结
从 Dapper 到 OpenTelemetry分布式链路追踪技术经经历了从专有到开源再到标准化的过程。这一过程反映了行业对于系统可观测性的不断追求OpenTelemetry 作为分布式链路追踪的事实标准代表了这个领域未来的技术方向。