En este tema, se describe cómo examinar un componente de Spanner para encontrar la fuente de latencia y visualizarla con OpenTelemetry. Para obtener una descripción general de los componentes de este tema, consulta Puntos de latencia en una solicitud de Spanner.
OpenTelemetry es un kit de herramientas y framework de observabilidad de código abierto que para crear y administrar datos de telemetría, como seguimientos, métricas y registros. Es el resultado de una fusión entre OpenTracing y OpenCensus. Para obtener más información, consulta ¿Qué es OpenTelemetry?
Las bibliotecas cliente de Spanner proporcionan métricas y seguimientos con el uso del framework de observabilidad de OpenTelemetry. Sigue el procedimiento que se indica en Cómo identificar el punto de latencia para encontrar los componentes que muestran latencia en Spanner.
Antes de comenzar
Antes de comenzar a capturar métricas de latencia, familiarízate con las prácticas manuales Instrumentación con OpenTelemetry Debes configurar el SDK de OpenTelemetry con las opciones adecuadas para exportar tus datos de telemetría. Existen varias Hay opciones disponibles del exportador de OpenTelemetry. Recomendamos usar el exportador de OpenTelemetry Protocol (OTLP). Otras opciones incluyen el uso de un recopilador OTel. con Google Cloud Exporter o Google Managed Service para Prometheus Exporter.
Si ejecutas tu aplicación en Compute Engine, puedes usar el Agente de operaciones para recopilar métricas y seguimientos del protocolo OpenTelemetry. Para obtener más información, consulta Recopila métricas y seguimientos OTLP.
Agrega dependencias
Para configurar el SDK de OpenTelemetry y el exportador de OTLP, agrega lo siguiente: dependencias a tu aplicación.
Java
Go
Cómo insertar el objeto OpenTelemetry
Luego, crea un objeto OpenTelemetry con el exportador OTLP y, luego, inserta el
Objeto OpenTelemetry con SpannerOptions
.
Java
Go
Captura y visualiza la latencia de ida y vuelta del cliente
La latencia de ida y vuelta del cliente es el tiempo (en milisegundos) entre las primer byte de la solicitud a la API de Spanner que el cliente envía al la base de datos (a través del frontend de la API de Spanner y GFE), y el último byte de respuesta que recibe el cliente de la base de datos.
Captura la latencia de ida y vuelta de los clientes
La métrica de latencia de ida y vuelta del cliente de Spanner no es compatible con OpenTelemetry. Puedes instrumentar la métrica mediante OpenCensus con un puente y migrar los datos a OpenTelemetry.
Visualiza la latencia de ida y vuelta del cliente
Después de recuperar las métricas, puedes visualizar la latencia de ida y vuelta del cliente en Cloud Monitoring
Este es un ejemplo de un gráfico que ilustra la latencia del percentil 5 para la métrica de latencia de ida y vuelta del cliente. Para cambiar la latencia percentil a en el percentil 50 o 99, usa el menú Agregador.
El programa crea una vista llamada roundtrip_latency
. Esta cadena pasa a formar parte
del nombre de la métrica cuando se exporta a Cloud Monitoring.
Captura y visualiza la latencia de GFE
La latencia de Google Front End (GFE) es el tiempo (en milisegundos) entre el momento en que la red de Google recibe una llamada de procedimiento remoto del cliente y el momento en que GFE recibe el primer byte de la respuesta.
Cómo capturar la latencia de GFE
Para capturar métricas de latencia de GFE, habilita las siguientes opciones con la biblioteca cliente de Spanner.
Java
Go
Visualiza la latencia de GFE
Después de recuperar las métricas, puedes visualizar la latencia de GFE en Cloud Monitoring.
Este es un ejemplo de un gráfico que ilustra la agregación de distribución para la métrica de latencia de GFE. Para cambiar la latencia del percentil al 5%, al 50%, al 95% o al 99%, usa el menú Agregador.
El programa crea una vista llamada spanner/gfe_latency
. Esta cadena se convierte en parte del nombre de la métrica cuando se exporta a Cloud Monitoring.
Captura y visualiza la latencia de las solicitudes a la API de Spanner
La latencia de solicitud a la API de Spanner es la cantidad de tiempo (en segundos) entre el primer byte de solicitud que envía el frontend de la API de Spanner recibe y el último byte de respuesta que la API de Spanner que envía el frontend.
Captura la latencia de las solicitudes a la API de Spanner
De forma predeterminada, esta latencia está disponible como parte de las métricas de Cloud Monitoring. No es necesario que hagas nada para capturarlo y exportarlo.
Visualiza la latencia de las solicitudes a la API de Spanner
Puedes usar la herramienta de gráficos del Explorador de métricas para visualizar el gráfico de la métrica spanner.googleapis.com/api/request_latencies
en Cloud Monitoring.
Este es un ejemplo de un gráfico en el que se ilustra la latencia del percentil 5 de la Métrica de latencia de solicitud a la API de Spanner. Para cambiar la latencia del percentil al percentil 50 o 99, usa el menú Agregador.
Captura y visualiza la latencia de las consultas
La latencia de las consultas es el tiempo (en milisegundos) que se tarda en ejecutar consultas SQL en la base de datos de Spanner.
Captura la latencia de las consultas
Puedes capturar la latencia de consulta para los siguientes idiomas:
Java
Comienza a usarlo
Visualiza la latencia de las consultas
Después de recuperar las métricas, puedes visualizar la latencia de la consulta en Cloud Monitoring
Este es un ejemplo de un gráfico que ilustra la agregación de distribución para la métrica de latencia de GFE. Para cambiar la latencia del percentil al 5%, al 50%, al 95% o al 99%, usa el menú Agregador.
El programa crea una vista de OpenCensus llamada query_stats_elapsed
.
Esta cadena pasa a formar parte del nombre de la métrica cuando se exporta a
Cloud Monitoring
¿Qué sigue?
Obtén más información sobre OpenTelemetry.
Obtén más información para migrar a OpenTelemetry.
Obtén información para usar las métricas y diagnosticar la latencia.