本主题介绍如何检查 Spanner 组件 找出延迟来源,并使用 OpenTelemetry 直观呈现延迟情况。 有关本主题中各组件的简要概述,请参见 Spanner 请求中的延迟时间点。
OpenTelemetry 是一个开源可观测性框架和工具包,可让您创建和管理跟踪记录、指标和日志等遥测数据。它是 OpenTracing 和 OpenCensus 合并的结果。如需了解详情,请参阅什么是 OpenTelemetry?
Spanner 客户端库通过 使用 OpenTelemetry 可观测性框架。按照确定延迟时间点中的步骤,找出在 Spanner 中显示延迟时间的组件。
准备工作
在开始捕获延迟时间指标之前,请先熟悉使用 OpenTelemetry 手动插桩。您必须配置 OpenTelemetry SDK 并提供导出遥测数据的适当选项。有多个 有可用的 OpenTelemetry 导出器选项。我们建议使用 OpenTelemetry 协议 (OTLP) 导出器。 其他选项包括将 OTel Collector 与 Google Cloud Exporter 或 Google Managed Service for Prometheus Exporter 搭配使用。
如果您在 Compute Engine 上运行应用,则可以使用 Ops Agent 用于收集 OpenTelemetry Protocol 指标和跟踪记录的代理。如需了解详情,请参阅收集 OTLP 指标和跟踪记录。
添加依赖项
如需配置 OpenTelemetry SDK 和 OTLP 导出器,请添加以下内容 应用依赖项
Java
Go
注入 OpenTelemetry 对象
然后,使用 OTLP 导出器创建一个 OpenTelemetry 对象,并注入
使用 SpannerOptions
的 OpenTelemetry 对象。
Java
Go
捕获和直观呈现客户端往返延迟时间
客户端往返延迟时间是指 客户端发送到的 Spanner API 请求的第一个字节 数据库(通过 GFE 和 Spanner API 前端), 以及客户端从数据库收到的响应的最后一个字节。
捕获客户端往返延迟时间
不支持 Spanner 客户端往返延迟时间指标 使用 OpenTelemetry您可以使用 OpenCensus 和 桥 并将数据迁移到 OpenTelemetry
直观呈现客户端往返延迟时间
检索指标后,您可以 Cloud Monitoring。
下例中的图表展示了 客户端往返延迟时间指标如需将百分位延迟时间更改为第 50 百分位或第 99 百分位,请使用聚合器菜单。
该程序会创建一个名为 roundtrip_latency
的视图。该字符串会成为
为指标名称指定名称。
捕获并直观呈现 GFE 延迟时间
Google Front End (GFE) 延迟时间是指 当 Google 网络收到来自客户端的远程过程调用时, 当 GFE 收到响应的第一个字节时。
捕获 GFE 延迟时间
您可以通过启用以下选项来捕获 GFE 延迟时间指标 使用 Spanner 客户端库。
Java
Go
直观呈现 GFE 延迟时间
检索指标后,您可以在 Cloud Monitoring 中直观呈现 GFE 延迟时间。
下面的图表示例展示了 的分布聚合 计算 GFE 延迟时间指标如需将百分位延迟时间更改为第 5、第 50、第 95 或第 99 百分位,请使用聚合器菜单。
该程序会创建一个名为 spanner/gfe_latency
的视图。这个
字符串导出到
Cloud Monitoring。
捕获和直观呈现 Spanner API 请求延迟时间
Spanner API 请求延迟时间是 Spanner API 前端收到请求的第一个字节与 Spanner API 前端发送响应的最后一个字节之间的时长(以秒为单位)。
捕获 Spanner API 请求延迟时间
默认情况下,此延迟时间 Cloud Monitoring 指标。 您无需执行任何操作即可捕获和导出此数据。
直观呈现 Spanner API 请求延迟时间
您可以使用 Metrics Explorer
图表工具 用于直观呈现
spanner.googleapis.com/api/request_latencies
指标。
下面是一个图表示例,说明了 Spanner API 请求延迟时间指标的第 5 百分位延迟时间。如需更改百分位数 第 50 或第 99 百分位的延迟时间,请使用聚合器 菜单。
捕获和直观呈现查询延迟时间
查询延迟时间是在 Spanner 数据库中运行 SQL 查询所需的时长(以毫秒为单位)。
捕获查询延迟时间
您可以捕获以下语言的查询延迟时间:
Java
Go
直观呈现查询延迟时间
检索指标后,您可以 Cloud Monitoring。
下面是一个图表示例,说明了 GFE 延迟时间指标的分布汇总。如需将百分位延迟时间更改为第 5 百分位, 第 50、第 95 或第 99 百分位:使用聚合器菜单。
该程序会创建一个名为 query_stats_elapsed
的 OpenCensus 视图。当指标被导出到 Cloud Monitoring 时,该字符串会成为指标名称的一部分。
后续步骤
详细了解 OpenTelemetry。
了解如何迁移到 OpenTelemetry。
了解如何使用指标诊断延迟时间。