OpenTelemetry 中的上下文传播:原理、模型与应用
1. 引言
在分布式系统和微服务架构中,上下文传播是一项关键技术,它不仅适用于分布式追踪,还在其他多个应用场景中发挥着重要作用。OpenTelemetry 作为一个强大的可观测性框架,为了支持更广泛的用例,提出了将上下文机制和模型与分布式追踪和指标模型分离的方案。本文将深入探讨 OpenTelemetry 上下文传播的相关内容,包括为何需要单独的上下文模型、OpenTelemetry 上下文模型的具体构成、W3C 关联上下文及相关 API,以及分布式和本地上下文的交互方式,并通过示例展示其潜在应用。
2. 为何需要单独的上下文模型
在软件开发中,上下文传播机制具有广泛的应用,不仅仅局限于微服务架构的性能分析和监控,还涉及到一些跨领域的工具。然而,目前开发者在构建软件时,这些跨领域工具往往与软件中的其他特定组件或依赖紧密耦合。
例如,在 OpenTracing 中,通过跟踪上下文行李(trace context baggage)传播键值对对于遥测目的非常有用,可以利用上游服务携带的数据在后续请求中隔离特定事件或指标。但也有开发者将其用作带外消息通道,向请求中的后续服务发送命令或控制流指示。另外,gRPC 的上下文类常用于跨 API 边界传播安全原则和凭证。
OpenTelemetry 的上下文模型主要解决两个核心问题:
- 可扩展性 :上下文传播机制的可扩展性是一个明确的设计目标。将上下文传播机制与可观测性组件清晰分离,使得终端用户可以根据需求单独使用上下文传播机制,而无需依赖可观测性工具来处理非可观测性相关的问题。这为开发者构建
超级会员免费看
订阅专栏 解锁全文
42

被折叠的 条评论
为什么被折叠?



