jueves, mayo 16, 2019

Glowroot, un aliado para la mejora de performance de mis aplicaciones

El Glowroot es un APM que estoy usando para poder evaluar el rendimiento de mi aplicación y la considero una herramienta fundamental para el desarrollador. Hoy en día el papel del desarrollador no es solo picar código, si no que también debemos estar atentos a que nuestra aplicación pueda convivir dentro del ecosistema de aplicaciones que la rodean.  En mi caso tengo una aplicación que atiende a todo el país y debe convivir con otras aplicaciones que brindan servicios los cuales consumo aparte de exponer servicios a varios clientes. Esto hace a que debo estar atento a que los cambios que se realizan no impacten en el rendimiento del ecosistema en el que se ve inserto el sistema.

Para poder estar atento al rendimiento de mi aplicación necesito contar con alguna herramienta que me permita hacer un estudio del consumo de memoria, consultas a la DB y guardar estadísticas de estos consumos.

En mi caso me encuentro haciendo refactoring a un sistema que lleva en producción unos 11 años y ha sufrido cambios varios que me han permitido migrar versión de GeneXus (9, 15 y 16) e inclusive hacer mejoras en su arquitectura. Estos cambios implican hacer "refactoring" de código casi constantemente, en realidad a medida que planifico liberaciones trato de mejorar aspectos de rendimiento y mejoras varias por lo que necesito contar con insumos que me permitan demostrar las mejoras realizadas.

Cuando el año pasado comencé con algunos problemas en consumos de memoria luego de haber migrado mi aplicación de GX 9 a GX15 me puse a investigar que herramientas existían en la vuelta y me decidí por instalar Glowroot.

El uso diario que le doy y el mas sencillo de usar es el análisis de las consultas que hace mi aplicación sobre la base de datos. Básicamente al tener Glowroot instalado alcanza con ejecutar mi aplicación y luego ver las consultas que genera, aquí dejo un ejemplo de una ejecución de una parte del sistema que tenía que cambiar: 

Sin optimizar


Luego de optimizar y hacer refactoring ejecute nuevamente mi aplicación y consulte las consultas que había realizado a la base y pude verificar que los cambios que hice realmente bajaron la cantidad de consultas mejorando el rendimiento de código que había modificado.

Optimizada



La información con la que cuento en Glowroot con respecto a las consultas que realizo sobre la base me permiten estudiar y verificar la cantidad de veces que se ejecuta una consulta aparte de los tiempos de cada una. Realmente es algo muy sencillo de utilizar y que rápidamente puedo verificar que las consultas que se están ejecutando son las que realmente quiero que se hagan. 

El ejemplo que puse arriba es algo muy sencillo en donde mejore el código pero lo que quiero mostrar es que la herramienta me permite consultar rápidamente que consultas hago, la cantidad, el tiempo y en que consiste cada una. 

El Glowroot es una herramienta potente que me permite analizar el rendimiento de la memoria y muchas cosas mas. Este ejemplo es una de las cosas mas básicas que tiene esta herramienta, en mi caso la uso a diario y la comparto para que puedan aprovecharla como lo hago a diario.