Monitoring

La optimización del rendimiento comienza con la identificación de las métricas clave, que por lo general están relacionadas con la latencia y la capacidad de procesamiento. La adición de supervisión para capturar y hacer un seguimiento de estas métricas expone los puntos débiles en la aplicación. Con las métricas, se puede llevar a cabo la 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 se te notifique cuando se alcance un umbral determinado. Por ejemplo, puedes configurar una alerta para que te notifique cuando el porcentaje de solicitudes con errores aumente más del x% de los niveles normales. Las herramientas de supervisión pueden ayudarte a identificar cómo se ve el rendimiento normal, además de identificar aumentos repentinos inusuales en la latencia, cantidades de errores y otras métricas clave. La capacidad de supervisar estas métricas es particularmente importante durante períodos críticos de la empresa o después de que se envíe código nuevo a producción.

Identifica las métricas de latencia

Asegúrate de mantener la IU lo más responsiva posible. Ten en cuenta que los usuarios esperan estándares aún más altos de las apps para dispositivos móviles. También se debe medir y hacer un seguimiento de la latencia para los servicios de backend, sobre todo porque puede generar problemas de capacidad de procesamiento si no se marca.

Las métricas sugeridas para realizar un seguimiento incluyen las siguientes:

  • Duración de la solicitud
  • Duración de la solicitud en el nivel de detalle del subsistema (como las 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 que se entregan 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.

A continuación, se incluyen algunas métricas sugeridas para hacer un seguimiento:

  • Consultas por segundo
  • Tamaño de datos transferidos por segundo
  • Cantidad de operaciones de E/S por segundo
  • Uso de recursos, como CPU o memoria
  • Tamaño de la lista de procesamiento, como Pub/Sub o la cantidad de subprocesos

No solo la media

Un error común en la medición del rendimiento es observar solo el caso medio (promedio). Si bien esto es útil, no proporciona estadísticas sobre la distribución de la latencia. Una métrica mejor para hacer un seguimiento son los percentiles de rendimiento, por ejemplo, el percentil 50/75/90/99 de una métrica.

Por lo general, la optimización se puede hacer en dos pasos. Primero, optimiza para la latencia del percentil 90. Luego, considera el percentil 99, también conocido como latencia final, 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 métricas de seguimiento. El lado del servidor suele ser mucho más fácil de instrumentar, permite acceder a datos más detallados y está menos sujeto a perturbación por problemas de conectividad.

Supervisión del navegador para obtener visibilidad de extremo a extremo

La creación de perfiles del navegador puede proporcionar estadísticas adicionales sobre la experiencia del usuario final. Puede mostrar qué páginas tienen solicitudes lentas, que luego puedes correlacionar con la supervisión del servidor para un análisis más detallado.

Google Analytics proporciona una supervisión lista para usar para los tiempos de carga de la página en el informe de tiempos de la página. 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 métricas de rendimiento en tu proyecto de Google Cloud y, luego, configurar paneles en Google Cloud Monitoring a fin de supervisar y segmentar las métricas registradas.

Consulta la guía de Logging para ver un ejemplo de acceso a Google Cloud Logging desde un interceptor personalizado en la biblioteca cliente de Python. Con esos datos disponibles en Google Cloud, puedes compilar 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 Monitoring para definir métricas en tu código y enviarlas directamente a Monitoring, independientemente de los registros.

Ejemplo de métricas basadas en registros

Supongamos que deseas supervisar el valor is_fault para comprender mejor las tasas de errores en tu aplicación. Puedes extraer el valor is_fault de los registros en una métrica de contador nueva, ErrorCount.

Configuración de métricas

Filtros y etiquetas en las métricas

En Cloud Logging, las etiquetas te permiten agrupar tus métricas en categorías basadas en otros datos de los registros. Puedes configurar una etiqueta para el campo method enviado a Cloud Logging a fin de ver cómo se desglosa el recuento de errores mediante 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 un panel de Monitoring para supervisar ErrorCount, agrupado por Method.

Panel ErrorCount

Alertas

Es posible configurar políticas de alertas en Cloud Monitoring y en otras herramientas que especifiquen cuándo y cómo tus métricas deben activar las alertas. Si quieres obtener instrucciones para configurar alertas de Cloud Monitoring, sigue la guía de alertas.