1. 课程导论:什么是可观测性、为什么需要租户隔离、OTel在链路追踪中的角色

1.1 什么是可观测性

可观测性(Observability)源自控制理论,在云原生语境下指通过系统外部输出来推断内部状态的能力。与传统监控不同,可观测性不是被动地检查已知故障模式,而是允许工程师在未知问题发生时,通过数据探索来定位根因。

可观测性的三大支柱(Three Pillars)构成了现代可观测性体系的基石:

支柱 定义 典型数据 核心价值
指标(Metrics) 可聚合的数值型时间序列数据 请求延迟、CPU使用率、错误率 趋势分析与告警
日志(Logs) 带时间戳的离散事件记录 应用日志、系统日志、审计日志 详细上下文与调试
链路追踪(Traces) 端到端请求路径的分布式记录 Span、Trace ID、服务依赖图 请求级性能分析与故障定位
关键认知: 三大支柱并非孤立存在。在云原生架构中,链路追踪是连接指标与日志的桥梁——通过 Trace ID 可以关联到具体的 Metrics 异常和 Logs 上下文,形成完整的可观测性闭环。
可观测性三大支柱与链路追踪的桥梁作用 指标 Metrics 延迟 / 错误率 / 吞吐 日志 Logs 事件 / 异常 / 审计 链路追踪 Traces Span / Trace ID / 依赖 链路追踪的桥梁作用 Trace ID 关联 Metrics 异常 → 定位故障服务 → 关联 Logs 获取详细上下文 可观测性 ≠ 监控:监控回答“出了什么问题”,可观测性回答“为什么出问题”

1.2 为什么需要租户隔离

在多租户(Multi-Tenant)云原生环境中,多个团队、业务线或客户共享同一套基础设施和可观测性平台。如果没有有效的租户隔离,将面临以下严重问题:

  • 数据泄露风险: 租户 A 的敏感业务数据可能被租户 B 意外访问。
  • 性能干扰: 一个租户的高流量或异常数据可能影响其他租户的查询性能。
  • 成本归属模糊: 无法准确核算每个租户的可观测性资源消耗。
  • 合规性挑战: 金融、医疗等行业要求严格的数据边界和审计隔离。
实战经验: 在大型 SaaS 平台中,租户隔离不仅是安全需求,更是运维效率需求。没有隔离的链路追踪系统,当故障发生时,运维人员需要从海量跨租户数据中手动过滤,平均故障定位时间(MTTR)会延长 3-5 倍。

租户隔离在链路追踪中的核心目标可以概括为以下三个层次:

隔离层次 目标 实现方式
数据隔离 租户只能看到自己的 Trace 数据 租户标签、数据分区、访问控制
性能隔离 租户间数据采集和查询互不干扰 采样率独立配置、存储资源池化
成本隔离 精确计量每个租户的可观测性成本 租户级标签、用量统计、计费分摊
多租户链路追踪隔离架构 租户 A 服务集群 A Trace 数据 A 租户 B 服务集群 B Trace 数据 B 租户 C 服务集群 C Trace 数据 C 共享可观测性基础设施(OTel Collector + 存储后端) 通过租户标签(tenant_id)实现数据隔离与路由

1.3 OTel在链路追踪中的角色

OpenTelemetry(OTel)是 CNCF 孵化的可观测性标准,它解决了传统链路追踪领域的碎片化问题。在链路追踪中,OTel 扮演了以下关键角色:

  • 统一数据模型: 定义标准的 Span、Trace、Resource 数据结构,消除厂商锁定。
  • 跨语言 SDK: 提供 Java、Go、Python、Node.js 等主流语言的自动/手动埋点能力。
  • 采集与处理管道: OTel Collector 作为独立组件,负责接收、处理、导出 Trace 数据。
  • 上下文传播: 通过 W3C TraceContext 标准,实现跨服务、跨协议的 Trace ID 传递。
  • 租户标签注入: 在数据采集阶段自动注入租户标识,为隔离提供数据基础。
常见误区: OTel 本身不提供存储和可视化能力。它负责数据的生成、采集、处理、导出,而存储和展示需要对接 Jaeger、Zipkin、Grafana Tempo、Datadog 等后端系统。理解这个边界对于设计租户隔离方案至关重要。

OTel 在链路追踪中的完整数据流如下:

  1. 应用埋点: 通过 OTel SDK 在服务中生成 Span,携带 Trace ID、Span ID、租户标签。
  2. 上下文传播: 通过 HTTP/gRPC 请求头传递 Trace 上下文,保证跨服务链路完整。
  3. 数据导出: SDK 将 Span 数据发送到 OTel Collector(gRPC/HTTP 协议)。
  4. 数据处理: Collector 进行批处理、过滤、采样、租户标签增强。
  5. 数据导出: Collector 将处理后的数据写入后端存储系统。
OTel 链路追踪数据流与租户隔离 应用服务 OTel SDK 埋点 + 租户标签注入 OTel Collector 批处理 / 过滤 / 采样 租户路由与标签增强 后端存储 Jaeger / Tempo 按租户分区存储 租户隔离关键点 SDK 注入 tenant_id → Collector 按 tenant_id 路由 → 存储按 tenant_id 分区 标准协议:OTLP (OpenTelemetry Protocol) | 上下文传播:W3C TraceContext

1.4 本章小结

核心要点回顾:

  • 可观测性通过指标、日志、链路追踪三大支柱实现系统内部状态推断,链路追踪是连接其他支柱的桥梁。
  • 多租户环境下,数据隔离、性能隔离、成本隔离是链路追踪必须解决的三大挑战。
  • OTel 作为统一标准,在链路追踪中负责数据生成、采集、处理、导出,并通过租户标签机制为隔离提供基础。
  • 本课程后续章节将深入 OTel SDK 埋点、Collector 配置、租户标签策略、存储隔离等实战内容。