本页面简要介绍了如何使用 OpenTelemetry 收集跟踪记录。如需监控和调试 Spanner 请求,您可以在 Spanner 客户端库中启用跟踪记录。客户端跟踪和端到端跟踪可帮助您监控性能和调试问题。
轨迹可为来自客户端的每个请求提供相关信息,例如:
包含时间戳的 span,用于记录客户端发送 RPC 请求的时间和客户端收到 RPC 响应的时间,包括网络和客户端系统造成的延迟。
提供有关客户端及其配置信息的属性(键值对)。
包含 span 中重要事件的注释。
如需详细了解 span 和属性,请参阅 OpenTelemetry 文档中的span 和属性。
端到端跟踪
除了客户端跟踪之外,您还可以选择启用端到端跟踪。 端到端跟踪有助于您了解和调试 Spanner 特有的延迟时间问题,例如:
确定延迟时间是由于应用与 Spanner 之间的网络延迟时间造成的,还是由于 Spanner 内部发生延迟时间造成的。
确定应用请求所经过的 Google Cloud 区域,以及是否存在跨区域请求。跨区域请求通常意味着应用与 Spanner 之间的延迟时间更长。
为防止 Cloud Trace 过载并帮助有效管理费用,端到端跟踪功能对可导出的跟踪范围数量有限制。此限制不会影响使用端到端跟踪进行问题排查。
OpenTelemetry
Spanner 客户端库支持使用 OpenTelemetry API 收集跟踪记录。OpenTelemetry 是一个开源可观测性框架。OpenTelemetry 提供各种配置,例如特定后端的导出器、抽样比率和 span 限制。
使用导出器和收集器导出轨迹
在配置过程中,您可以将轨迹导出到可观测性后端。大多数可观测性服务提供商都会提供可供您使用的导出器,例如跟踪记录导出器。
除了导出器之外,OpenTelemetry 还建议设置收集器。借助收集器,您的服务可以快速卸载数据,并让收集器负责其他处理工作,例如重试、批处理和加密。收集器与您的应用并行运行。收集器接收 OLTP 消息、处理消息,并将其导出到可观测性后端。
限制
Spanner 轨迹具有以下限制:
- 跟踪 span 仅适用于 Java、Go、Node 和 Python 客户端库。
- 端到端轨迹只能导出到 Cloud Trace。
价格
除了 Spanner 使用情况之外,通过可观测性后端进行跟踪可能会产生费用。
将跟踪 span 提取到可观测性后端是需要付费的。 例如,如果您使用 Cloud Trace 作为后端,则需按 Cloud Trace 价格付费。
为了更好地了解结算,请先根据流量设置较小的轨迹抽样比率。
后续步骤
如需设置客户端跟踪和端到端跟踪,请参阅使用 OpenTelemetry 设置跟踪记录收集。