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