En esta página se ofrece una descripción general de los componentes de alto nivel que intervienen en una solicitud de Spanner y de cómo puede afectar cada componente a la latencia.
Solicitudes a la API de Spanner
Los componentes de alto nivel que se usan para hacer una solicitud a la API de Spanner son los siguientes:
Bibliotecas de cliente de Spanner, que proporcionan una capa de abstracción sobre gRPC y gestionan los detalles de la comunicación con el servidor, como la gestión de sesiones, las transacciones y los reintentos.
El frontend de Google (GFE), que es un servicio de infraestructura común a todos los Google Cloud servicios, incluido Spanner. El GFE verifica que se detengan todas las conexiones de Seguridad en la capa de transporte (TLS) y aplica protecciones contra ataques de denegación de servicio. Para obtener más información sobre GFE, consulta el artículo Servicio Google Front End.
El frontend de la API de Spanner (AFE), que realiza varias comprobaciones en la solicitud de la API (incluidas las comprobaciones de autenticación, autorización y cuota), y mantiene las sesiones y los estados de las transacciones.
La base de datos de Spanner, que ejecuta lecturas y escrituras en la base de datos.
Cuando haces una llamada a procedimiento remoto a Spanner, las bibliotecas de cliente de Spanner preparan la solicitud de la API. A continuación, la solicitud de la API pasa por GFE y AFE de Spanner antes de llegar a la base de datos de Spanner.
Si mide y compara las latencias de las solicitudes entre los distintos componentes y la base de datos, puede determinar qué componente está causando el problema. Estas latencias incluyen la latencia de extremo a extremo del cliente, la latencia de GFE, la latencia de la solicitud de la API Spanner y la latencia de la consulta.

En las siguientes secciones se explica cada tipo de latencia que se muestra en el diagrama anterior.
Latencia de extremo a extremo
La latencia de extremo a extremo es el tiempo (en milisegundos) que transcurre entre el primer byte de la solicitud de la API de Spanner que el cliente envía a la base de datos (a través de GFE y del frontend de la API de Spanner) y el último byte de la respuesta que el cliente recibe de la base de datos.

La métrica
spanner.googleapis.com/client/operation_latencies
proporciona el tiempo transcurrido entre el primer byte de la solicitud de la API
enviada y el último byte de la respuesta recibida. Esto incluye los reintentos realizados por la biblioteca de cliente.
Para obtener más información, consulta el artículo Ver y gestionar métricas del lado del cliente.
Latencia de GFE
La latencia del frontend de Google (GFE) es el tiempo (en milisegundos) que transcurre entre el momento en que la red de Google recibe una llamada a procedimiento remoto del cliente y el momento en que el GFE recibe el primer byte de la respuesta. Esta latencia no incluye ningún handshake de TCP/SSL.

Todas las respuestas de Spanner (REST o gRPC) incluyen una cabecera que contiene el tiempo total entre el GFE y el backend (el servicio de Spanner) de la solicitud y la respuesta. Esto ayuda a diferenciar mejor la fuente de la latencia entre el cliente y el GFE.
La métrica spanner.googleapis.com/client/gfe_latencies
registra y expone la latencia de GFE para las solicitudes de Spanner.
Para obtener más información, consulta el artículo Ver y gestionar métricas del lado del cliente.
Latencia de solicitudes de la API de Spanner
La latencia de las solicitudes a la API de Spanner es el tiempo (en segundos) que transcurre desde que el AFE de Spanner recibe el primer byte de una solicitud hasta que el frontend de la API de Spanner envía el último byte de una respuesta. La latencia incluye el tiempo necesario para procesar las solicitudes de la API tanto en el backend de Spanner como en la capa de la API. Sin embargo, esta latencia no incluye la sobrecarga de la red ni del proxy inverso entre los clientes y los servidores de Spanner.

La métrica spanner.googleapis.com/api/request_latencies registra y expone la latencia de AFE de Spanner para las solicitudes de Spanner. Para obtener más información, consulta Métricas de Spanner.
Latencia de la consulta
La latencia de las consultas es el tiempo (en milisegundos) que se tarda en ejecutar consultas de SQL en la base de datos de Spanner.

La latencia de las consultas está disponible para la API executeSql.
Si el parámetro
QueryMode
tiene el valor WITH_STATS o WITH_PLAN_AND_STATS,
las
ResultSetStats
de Spanner están disponibles en las respuestas. ResultSetStats incluye el tiempo transcurrido para ejecutar consultas en la base de datos de Spanner.
Para registrar y visualizar la latencia de las consultas, consulta Registrar la latencia de las consultas con OpenTelemetry.
Siguientes pasos
- Consulta cómo identificar los puntos de latencia en los componentes de Spanner.