Beclever blog

Nuestras últimas novedades

MONITORIZACIÓN DE RENDIMIENTO Y APM

monitorizacion-rendimiento-apm

Lo más habitual en muchas empresas, suele ser disponer de una monitorización básica, donde sólo llega a conocerse la disponibilidad de nuestros sistemas. Conocemos exactamente si el servidor está caído o no, el uso de cpu, memoria o disco, si hay algún proceso interno caído, etc… ¿Considera que es suficiente con eso? Hay muchas casuísticas que no se pueden evaluar con una monitorización que sólo tiene en cuenta la disponibilidad. Podemos tener un servidor donde se ejecuta una aplicación, donde estamos viendo que el servidor está levantado, la aplicación está levantada, y que, sin embargo, los usuarios no pueden acceder a la misma, tienen errores en una sección muy concreta de la misma, o simplemente, el rendimiento de la aplicación es muy pobre…

Lógicamente, es imprescindible que una aplicación (y cualquier infraestructura que le dé servicio) esté disponible, pero es igual de importante el rendimiento de dicha aplicación. Los usuarios, ya sean usuarios internos o clientes, necesitan operar en condiciones adecuadas, con unos tiempos de respuesta adecuados, sin errores.

Partiendo de la base de que es necesario incluir el rendimiento como uno de los objetivos de cualquier departamento o grupo dedicado a la monitorización, nos surgen los siguientes aspectos a tener en cuenta para monitorizar nuestra infraestructura:

Para ello, debemos disponer de la solución adecuada que nos permita conocer exactamente el comportamiento de nuestras aplicaciones. A la hora de monitorizar nuestras aplicaciones, debemos tener en cuenta 3 capas principales:

  • La experiencia del usuario
  • El rendimiento del servidor de aplicaciones y el detalle de ejecución de las peticiones
  • El rendimiento de la infraestructura

Las soluciones tradicionales de monitorización (ya sean software libre o de pago) se suelen quedar en la parte de infraestructura, que como hemos, no es suficiente.

Respecto a la experiencia del usuario final, existen dos alternativas:

  • Transacciones sintéticas, donde programamos un robot que ejecute ciertas operativas que simulan el trabajo de un usuario cada cierto tiempo
  • Experiencia Real del usuario final, donde se captura el uso real que los usuarios hacen de nuestras aplicaciones

En otra entrada de nuestro blog hablaremos de la diferencia entre las transacciones sintéticas y la experiencia real del usuario final. En este blog, simplemente nos quedaremos en que no son excluyentes, ya que ambos tienen beneficios importantes que pueden ser útiles para cubrir nuestras necesidades.

Volviendo a nuestro tema, mencionar que para incorporar el conocimiento de las capas superiores arriba mencionadas (experiencia del usuario y peticiones/servidores de aplicación) existen soluciones APM (Application Performance Monitoring), que nos permitirán cubrir ese gap. Las soluciones APM nos permiten conocer exactamente la experiencia que nuestros usuarios están teniendo al utilizar nuestras aplicaciones. Podemos conocer el tiempo de respuesta de las páginas por las que navegan, algunas soluciones APM incluso te permiten hacer un replay de la navegación del cliente, podemos disgregar el tiempo de navegación, conociendo el tiempo de renderización de la página en el equipo del usuario, la latencia de red y el tiempo de procesamiento en el Datacenter. En este último punto, nos permiten bajar a nivel de servidor de aplicaciones, conocer el detalle de las peticiones ejecutadas, incluyendo los métodos, clases o sentencias sql más lentas que ocasionan la degradación del rendimiento de nuestras aplicaciones.

Es muy sencillo incorporar este tipo de soluciones a nuestro ecosistema. Existen soluciones que cubren las tres partes mencionadas (usuario final, aplicaciones e infraestructura), pero en caso de tener ya cubierta alguna de ellas, no es necesario sustituirlas. La integración es posible.

Deja un comentario