Monitorización y alertas en aplicaciones java con AppDynamics

3
8207

Monitorización y alertas en aplicaciones java con AppDynamics

0. Índice de contenidos.


1. Introducción

Mucho ha cambiado AppDynamics desde que salieron sus primeras versiones. Es por eso que hoy os voy a dejar un tutorial actualizado de la última versión a día de hoy, la 3.9.5.2 build 11. Entre estos cambios destaca la posibilidad de poder monitorizar en la nube, y también la ampliación en la versión gratuita de 2 horas de almacenamiento de datos a 24 horas, lo cual es bastante significativo.

Lo que vamos a ver en este tutorial es como descargarnos el controlador, montarlo en una máquina linux, arrancar una aplicación web con el agente para monitorizar el rendimiento de la misma en dicho controlador y fijar una serie de alertas con notificación por mail.


2. Entorno

  • Hardware: Portátil MacBook Pro 15′ (2.3 GHz Intel i7, 16GB DDR3 SDRAM, 500GB HDD).
  • Sistema Operativo de la máquina donde se instala el controlador, y donde corre la aplicación web sobre un servidor Tomcat: Ubuntu Desktop 14.04 LTS.
  • Sistema Operativo de la máquina que ejecuta el agente en el navegador: Mac OS Mavericks 10.9.5.
  • Software relacionado con el tutorial: java 1.6.0_65, Apache Tomcat (7.0.57).


3. Instalación del controlador y del agente en Linux

Lo primero es crearse una cuenta en la página de appdynamics

Una vez tenemos la cuenta, al logarnos, se nos da la opción de descargarnos el controlador. Actualmente hay dos modos On-premise y SAAS.

Básicamente la opción On-premise tiene los pros de que guardamos los datos nosotros, y no los envíamos a un controlador en la nube, con lo que podemos ganar en seguridad (o perder, depende de tus protocolos de seguridad) y en tráfico de datos ya que no tenemos que enviar los datos a la nube continuamente. Como contra tenemos que estos datos se guardan en una mysql, y que aparte de los recursos de cpu, hay que guardar los datos, con el consiguiente gasto en espacio de disco. Para este tutorial nos vamos a decantar por la opción On-premise.

Pulsamos en descargar y seleccionamos el sistema operativo. Como voy a instalar el controlador en un Ubuntu escojo el sistema Linux 64 bits.

Una vez bajamos el fichero, lo descomprimimos y ejecutamos sudo ./controller_linux.sh y seguimos los pasos del instalador.

Una vez lo tenemos instalado podemos poner a correr el controlador. Para ello ejecutamos dentro de la carpeta bin el script startController.sh. Una vez arrancado podemos acceder a la url que nos muestra el mismo script por consola.

Ahora ya podemos acceder al controlador mediante un navegador en la url que hemos visto. Lo vamos a hacer así porque es más fácil bajarse el agente desde aquí, ya que se configura mediante un wizard, y es más sencillo que bajarse el agente desde la web y configurar un xml. Pinchamos en Agent Download Wizard y segumos los pasos. En nuestro caso seleccionamos Java > nuestra JVM > la dirección de nuestro controlador > creamos una nueva aplicación > creamos un nuevo tier > y nos lo descargamos al final pinchando en Click Here to Download.

Una vez que tenemos el agente descargado lo único que tenemos que hacer es añadir la siguiente propiedad de java (-javaagent:path_where_is_the_agent.jar) en la aplicación que queramos monitorizar.

4. Configurando tiempos de respuestas lentos y alertas

Ahora vamos a configurar algunas de las cosas que nos ofrece app dynamics y que nos van a permitir una monitorización más personalizada a nuestra aplicación. Lo primero que vamos a ver es como configurar cuando una petición es lenta o muy lenta en base a los tiempos que nosotros estimemos. Para ello nos vamos al apartado Configure y entramos en Slow Transaction Thresholds e introducimos los valores adecuados para nuestra aplicación como se aprecia en la imagen.

También podemos configurar las reglas de salud de las distintas aplicaciones. Tenemos de todo tipo, de uso de CPU, de uso del garbage collector, de uso de la memoria. Os invito a echar un vistazo a la sección de Alert & Respond > Health Rules y jugar con todas las opciones que nos ofrece Appdynamics. Tenemos las opciones en las que se genera un warn, y la opción de estado crítico. Luego podremos configurar que nos lleguen emails en función a estas condiciones para tomar las medidas oportunas.

Otra de las opciones que tenemos es configurar AppDynamics para que nos avise cuando estas reglas se violan. Para ello vamos a mandar un mail indicando que regla se ha violado y con que nivel si warning o crítico. Lo podemos configurar en el apartado Alert & Respond > Email Digest como se ve en la imagen.

Ahora lo que tenemos que hacer es ejecutar nuestra aplicación, y generar tráfico, irnos por las pantallas si las tuviera, provocar llamadas a base de datos si es que las tiene, y ver que las alertas que hemos puesto funcionan y recibimos un mail de forma correcta. Para probarlo lo que he hecho es poner datos muy bajos de forma que las alarmas salten en seguida, y luego cuando hemos comprobado que funciona ya ponemos los parámetros con sus valores normales.

Para más detalle con AppDynamics tenéis un tutorial de Jose Manuel Sánchez donde se explica como analizar las llamadas lentas, ver las llamadas a la base de datos, navegar por la pila de llamadas etc…


5. Conclusiones

Bueno el hecho de que hayan aumentado el número de horas me parece un punto a favor. Lo que no me ha gustado tanto es que ahora en mac no podemos tener instalado el controlador, o al menos no lo hemos conseguido. En cuanto a la herramienta es tan útil como siempre y ofrece una información valiosísima a la hora de detectar cuellos de botella.


6. Información sobre el autor

Alberto Barranco Ramón es Ingeniero Técnico en Informática de Gestión y Graduado en Ingeniería del Software por la Universidad Politécnica de Madrid

Mail: abarranco@autentia.com.

Twitter: @barrancoalberto

Autentia Real Business Solutions S.L. – «Soporte a Desarrollo».

3 Comentarios

  1. Estoy postulando a un trabajo y me pidieron estudiar la apllicacion APPDYNAMICS ?

    Que deviera sarber y para que si sirve la aplicacion favor enviar comentarios de antemano muchas gracias.

    Atte Antonio

Dejar respuesta

Please enter your comment!
Please enter your name here