OpenTelemetry 中的上下文传播
1. 为何需要独立的上下文模型
上下文传播不仅适用于分布式追踪,还适用于微服务架构中的其他应用。目前,OpenTelemetry 已采纳一项提案,将其上下文机制和模型与分布式追踪和指标模型分离,以支持更多样化的用例。
在实际开发中,开发者构建软件时,一些跨领域工具往往与软件中的其他特定组件或依赖紧密耦合。例如在 OpenTracing 中,通过追踪上下文行李(trace context baggage)传播键值对,可用于遥测目的传递消息,但也有开发者将其用作带外消息通道,向请求中的后续服务发送命令或控制流指示。另外,gRPC 的上下文类常用于跨 API 边界传播安全原则和凭证。
OpenTelemetry 的上下文模型主要解决两个问题:
- 扩展性 :作为设计目标,上下文传播机制应具备良好的扩展性。
- 关注点分离 :将上下文传播机制与可观测性组件清晰分离,使用户可按需单独使用上下文传播机制,而无需依赖可观测性工具处理非可观测性问题。这便于开发者基于上下文传播构建新应用,如 A/B 测试、低级请求路由和认证/授权方案。同时,将上下文传播作为独立组件,更易理解和推理,且允许上下文传播机制有多种独立的传播类型,例如在采样追踪上下文时,可丢弃某些追踪,但安全数据不会被丢弃。
2. OpenTelemetry 上下文模型
OpenTelemetry 的上下文传播模型定义了两个层次:
- 顶层 :包含分布式追踪、指标和关联等跨领域关注点,以及其他非可观测性功能。
超级会员免费看
订阅专栏 解锁全文
92

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



