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