轨迹和 span

在 Cloud Trace 中,跟踪记录和 span 构成了用于跟踪请求在分布式应用中的路径和延迟时间的数据模型。轨迹可捕获请求在您的服务中端到端的运行方式。跟踪记录由 span 组成,用于记录相应请求期间发生的各个操作、函数调用和 RPC。

跟踪数据模型

轨迹包含以下内容:

  • Trace ID:端到端操作的唯一标识符。 跟踪 ID 会在服务边界之间通过请求上下文进行传播。

  • span 集合:共享同一轨迹 ID 的一组 span。这些 span 构成一个树或有向非循环图,用于表示请求的调用层次结构。

Cloud Trace 使用跟踪记录 ID 来标识其代码库中哪些 span 与同一跟踪记录相关联。

Span 数据模型

span 表示在特定时间段内发生的单个操作。每个 span 都包含一些字段,这些字段提供有关 span 和操作状态的信息:

  • 标识符包含以下字段:

    • 跟踪 ID:span 所属的整体请求或跟踪记录的唯一标识符。
    • Span ID:span 的唯一标识符。如果某项操作在单个轨迹中被多次调用,则每次调用都会生成一个单独的 span,这些 span 具有相同的名称,但 span ID 各不相同。
    • 父 span ID:用于标识调用相应 span 的父操作。 “根”span 的父 span ID 设置为 null
    • 名称:执行的操作的名称。
    • Kind:span 类型可为跟踪工具(例如 Trace 探索器)提供有关 span 之间关系的信息。 如需了解详情,请参阅 OpenTelemetry SpanKind
  • 执行信息在以下字段中提供:

    • 状态:记录操作的完成状态。此字段的值为 Unset(默认值)、ErrorOk。默认值不表示错误。
    • 开始时间:操作的开始时间。
    • 结束时间:操作的结束时间。

Span 可以包含其他字段,例如事件、属性和链接:

  • 事件用于记录时间戳结构化消息(在时间段内)。
  • 属性使用键值对存储有关操作的附加信息。在编写属性时,我们建议您尽可能遵循 OpenTelemetry 语义惯例
  • 借助链接,您可以将一个 span 与另一个 span 相关联。

如需了解详情,请参阅 OpenTelemetry:span

资源

OpenTelemetry 资源:

后续步骤