La optimización del rendimiento comienza con la identificación de métricas clave, que suelen estar 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 de la aplicación. Con las métricas, se puede realizar 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 cumpla un umbral determinado. Por ejemplo, puedes configurar una alerta para que te notifique cuando el porcentaje de solicitudes fallidas aumente en más de x% de los niveles normales. Las herramientas de supervisión pueden ayudarte a identificar cómo se ve el rendimiento normal y a detectar aumentos inusuales en la latencia, las cantidades de errores y otras métricas clave. La capacidad de supervisar estas métricas es particularmente 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 mantener la IU lo más responsiva posible y ten 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 hacer un seguimiento de los servicios de backend, en particular, ya que puede generar problemas de rendimiento si no se controla.
Entre las métricas sugeridas para realizar un seguimiento, se incluyen las siguientes:
- Duración de la solicitud
- Duración de la solicitud a nivel de la granularidad del subsistema (como las llamadas a la API)
- Duración del trabajo
Identifica las métricas de rendimiento
La capacidad de procesamiento es una medida de la cantidad total de solicitudes entregadas en un período determinado. La capacidad de procesamiento puede verse afectada por la latencia de los subsistemas, por lo que es posible que necesites 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
- Utilización de recursos, como el uso de CPU o memoria
- Tamaño del trabajo pendiente 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 solo observar el caso medio (promedio). Si bien esto es útil, no proporciona estadísticas sobre la distribución de la latencia. Una mejor métrica para hacer un seguimiento es el percentil de rendimiento, por ejemplo, el percentil 50, 75, 90 o 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 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 el seguimiento de métricas. El lado del servidor suele ser mucho más fácil de instrumentar, permite el acceso 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
La generación de perfiles de navegadores 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 de los tiempos de carga de la página en el informe de tiempos de carga 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 Cloud Logging de Google para registrar las métricas de rendimiento en tu proyecto de Google Cloud y, luego, configurar paneles en Cloud Monitoring de Google para supervisar y segmentar las métricas registradas.
Consulta la Guía de registro para ver un ejemplo de cómo acceder a Google Cloud Logging desde un interceptor personalizado en la biblioteca cliente de Python. Con esos datos disponibles en Google Cloud, puedes crear métricas en función de los datos registrados para obtener visibilidad de tu aplicación a través de Google Cloud Monitoring. Sigue la guía de las métricas basadas en registros definidas por el usuario para compilar métricas con los registros que se envían a Google Cloud Logging.
Como alternativa, puedes usar las bibliotecas del cliente de Monitoring para definir métricas en tu código y enviarlas directamente a Monitoring, separadas de los registros.
Ejemplo de métricas basadas en registros
Supongamos que deseas supervisar el valor de is_fault
para comprender mejor las tasas de error en tu aplicación. Puedes extraer el valor is_fault
de los registros
a una nueva métrica de contador, ErrorCount
.
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 para el campo method
que se envía a Cloud Logging para ver cómo se desglosa el recuento de errores por 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
.
Alertas
En Cloud Monitoring y otras herramientas, es posible configurar políticas de alertas que especifiquen cuándo y cómo tus métricas deben activar las alertas. Para obtener instrucciones sobre cómo configurar alertas de Cloud Monitoring, sigue la guía de alertas.