本主题介绍了如何检查 Spanner 组件以查找延迟时间的来源,并使用 OpenCensus 直观呈现延迟时间。有关本主题中各组件的简要概述,请参见 Spanner 请求中的延迟时间点。
Spanner 客户端库通过 OpenCensus 可观测性框架提供统计信息和跟踪记录。该框架可提供 深入分析客户端的内部机制,并帮助端到端排查问题 (往返)延迟时间。默认情况下,该框架处于停用状态。
准备工作
请使用确定延迟时间点中的步骤,找到存在延迟时间的组件。
捕获和直观呈现客户端往返延迟时间
客户端往返延迟时间是指客户端发送到数据库(通过 Google Front End [GFE] 和 Spanner API 前端)的 Spanner API 请求的第一个字节与客户端从数据库收到的响应的最后一个字节之间的时长(以毫秒为单位)。
捕获客户端往返延迟时间
您可以捕获以下语言的客户端往返延迟时间:
Java
Go
直观呈现客户端往返延迟时间
检索指标后,您可以 Cloud Monitoring。
下面是一个图表示例,说明了客户端往返延迟时间指标的第 5 百分位延迟时间。如需将百分位延迟时间更改为 第 50 或第 99 百分位,使用聚合器菜单。
该程序会创建一个名为 roundtrip_latency
的 OpenCensus 视图。
当指标被导出到 Cloud Monitoring 时,该字符串会成为指标名称的一部分。
捕获和直观呈现 GFE 延迟时间
Google Front End (GFE) 延迟时间是 Google 网络收到来自客户端的远程过程调用与 GFE 收到响应的第一个字节之间的时长(以毫秒为单位)。
捕获 GFE 延迟时间
您可以捕获以下语言的 GFE 延迟时间:
Java
Go
直观呈现 GFE 延迟时间
检索指标后,您可以在 Cloud Monitoring。
下面是一个图表示例,说明了 GFE 延迟时间指标的第 5 百分位延迟时间。如需将百分位延迟时间更改为第 50 百分位或第 99 百分位,请使用聚合器菜单。
该程序会创建一个名为 gfe_latency
的 OpenCensus 视图。当指标被导出到 Cloud Monitoring 时,该字符串会成为指标名称的一部分。
捕获和直观呈现 Spanner API 请求延迟时间
Spanner API 请求延迟时间是 Spanner API 前端收到请求的第一个字节与 Spanner API 前端发送响应的最后一个字节之间的时长(以秒为单位)。
捕获 Spanner API 请求延迟时间
默认情况下,此延迟时间在 Cloud Monitoring 指标中提供。您无需执行任何操作即可捕获和导出此数据。
直观呈现 Spanner API 请求延迟时间
您可以使用 Metrics Explorer 图表工具在 Cloud Monitoring 中直观呈现 spanner.googleapis.com/api/request_latencies
指标的图表。
下面是一个图表示例,说明了 Spanner API 请求延迟时间指标的第 5 百分位延迟时间。如需将百分位延迟时间更改为第 50 百分位或第 99 百分位,请使用聚合器菜单。
捕获并直观呈现查询延迟时间
查询延迟时间是在 Spanner 数据库中运行 SQL 查询所需的时长(以毫秒为单位)。
捕获查询延迟时间
您可以捕获以下语言的查询延迟时间:
Java
Go
直观呈现查询延迟时间
检索指标后,您可以在 Cloud Monitoring 中直观呈现查询延迟时间。
下面是一个图表示例,说明了查询延迟时间指标的第 5 百分位延迟时间。如需将百分位延迟时间更改为第 50 百分位或第 99 百分位,请使用聚合器菜单。
该程序会创建一个名为 query_stats_elapsed
的 OpenCensus 视图。当指标被导出到 Cloud Monitoring 时,该字符串会成为指标名称的一部分。
后续步骤
详细了解 OpenCensus。
了解如何使用指标诊断延迟时间。