La optimización del rendimiento comienza con la identificación de las métricas clave, que suelen estar relacionadas con la latencia y la capacidad de procesamiento. La incorporación de la supervisión para capturar y hacer un seguimiento de estas métricas expone los puntos débiles de la aplicación. Con las métricas, se puede realizar una optimización para mejorar las métricas de rendimiento.
Además, muchas herramientas de supervisión te permiten configurar alertas para tus métricas, de modo
que recibas una notificación cuando se alcance un umbral determinado. Por ejemplo, puedes
configurar una alerta para que te notifique cuando el porcentaje de solicitudes con errores aumente
en más de un X% de los niveles normales. Las herramientas de supervisión pueden ayudarte a identificar
cómo se ve el rendimiento normal y a identificar aumentos repentinos inusuales en la latencia, las cantidades de errores
y otras métricas clave. La capacidad de supervisar estas métricas es
especialmente importante durante los períodos críticos para la empresa o después de que se haya enviado código nuevo
a producción.
Identifica las métricas de latencia
Asegúrate de que la IU sea lo más responsiva posible, teniendo en cuenta que los usuarios esperan estándares aún más altos de las apps para dispositivos móviles. La latencia también se debe medir y supervisar para los servicios de backend, en especial porque puede generar problemas de capacidad de procesamiento si no se controla.
Estas son algunas de las métricas sugeridas para hacer un seguimiento:
- Duración de la solicitud
- Duración de la solicitud con un nivel de detalle de subsistema (como llamadas a la API)
- Duración del trabajo
Identifica las métricas de capacidad de procesamiento
La capacidad de procesamiento es una medida de la cantidad total de solicitudes entregadas durante un período determinado. La capacidad de procesamiento puede verse afectada por la latencia de los subsistemas, por lo que es posible que debas optimizar la latencia para mejorar la capacidad de procesamiento.
Estas son algunas métricas sugeridas para hacer un seguimiento:
- Consultas por segundo
- Tamaño de los datos transferidos por segundo
- Cantidad de operaciones de E/S por segundo
- Uso de recursos, como el uso de CPU o uso de memoria
- Tamaño de la lista de tareas pendientes de procesamiento, como Pub/Sub o la cantidad de subprocesos
No solo la media
Un error común cuando se mide el rendimiento es observar solo el caso medio (promedio). Si bien esto es útil, no proporciona información sobre la distribución de la latencia. Una mejor métrica para realizar un seguimiento son los percentiles de rendimiento, por ejemplo, los percentiles 50, 75, 90 y 99 de una métrica.
Por lo general, la optimización se puede realizar en dos pasos. Primero, optimiza para la latencia del percentil 90. Luego, considera el percentil 99, también conocido como latencia de cola: la pequeña parte de las solicitudes que tardan mucho más en completarse.
Supervisión del servidor para obtener resultados detallados
Por lo general, se prefiere la generación de perfiles del servidor para hacer un seguimiento de las métricas. Por lo general, el lado del servidor es mucho más fácil de instrumentar, permite acceder a datos más detallados y está menos sujeto a perturbaciones por problemas de conectividad.
Supervisión del navegador para obtener visibilidad de extremo a extremo
Si tu integración de la API de Google Ads entrega un frontend web a los usuarios finales, la generación de perfiles del navegador puede proporcionar estadísticas adicionales sobre la experiencia del usuario. Puede mostrar qué páginas tienen solicitudes lentas, que luego puedes correlacionar con la supervisión del servidor para realizar un análisis más detallado.
Google Analytics también proporciona supervisión lista para usar de los tiempos de carga de la página en el informe de tiempos de página de Analytics. Esto proporciona varias vistas útiles para comprender la experiencia del usuario en tu sitio, en particular:
- Tiempos de carga de la página
- Tiempos de carga de redireccionamiento
- Tiempos de respuesta del servidor
Supervisión en la nube
Existen muchas herramientas que puedes usar para capturar y supervisar las métricas de rendimiento de tu aplicación. Por ejemplo, puedes usar Google Cloud Logging para registrar las métricas de rendimiento en tu proyecto de Google Cloud y, luego, configurar paneles en Google Cloud Monitoring para supervisar y segmentar las métricas registradas.
Consulta la guía de registro para ver un ejemplo de interceptor de registro de gRPC personalizado escrito para la biblioteca cliente de Python. En ese ejemplo, el interceptor llama a
logger.log_struct() para enviar un diccionario de Python de datos de registro estructurados a
Cloud Logging, que Cloud Logging almacena en el campo jsonPayload
de la entrada de registro:
logger.log_struct({
"method": method_name,
"elapsed_ms": elapsed_milliseconds,
"is_fault": is_fault,
})
Con esos datos disponibles en Google Cloud, puedes crear métricas sobre los datos registrados para obtener visibilidad de tu aplicación a través de Google Cloud Monitoring. Sigue la guía de métricas basadas en registros definidas por el usuario para compilar métricas con los registros enviados a Google Cloud Logging.
Como alternativa, puedes usar las bibliotecas cliente de Cloud Monitoring para definir métricas en tu código y enviarlas directamente a Monitoring, de forma independiente de los registros.
Ejemplo de métricas basadas en registros
Supongamos que deseas supervisar el valor is_fault para comprender mejor las tasas de error
en tu aplicación. Debido a que logger.log_struct() escribe campos de diccionario estructurados en jsonPayload en cada entrada de registro de Cloud Logging, puedes crear una métrica de contador llamada ErrorCount con un filtro que coincida con las solicitudes con errores, como jsonPayload.is_fault = true.
En Cloud Logging, las etiquetas te permiten agrupar tus métricas en
categorías según otros datos de los registros. Puedes configurar una etiqueta de STRING
llamada Method en el campo jsonPayload.method
enviado a Cloud Logging para desglosar el recuento de errores por el
método de la API de Google Ads.
Con la métrica ErrorCount y la etiqueta Method configuradas, puedes
crear un gráfico nuevo en Cloud Monitoring para supervisar
ErrorCount, con agrupación por Method.
Alertas
En Cloud Monitoring y en otras herramientas, es posible configurar políticas de alertas que especifiquen cuándo y cómo se deben activar las alertas según tus métricas. Para obtener instrucciones sobre cómo configurar alertas de Cloud Monitoring, sigue la guía para generar alertas sobre métricas basadas en registros.