Takipi, identifica los errores producidos en tus aplicaciones web Java

0
5921

En este tutorial veremos una herramienta que nos ayudará a detectar problemas en el código de nuestras aplicaciones en producción que corren en la JVM y nos evitará tener que revisar manualmente los logs.

0. Índice de contenidos.

1. Introducción

En este tutorial veremos cómo instalar y dar los primeros pasos con la herramienta Takipi, la cuál nos permite analizar las causas que han producido errores (excepciones, errores HTTP, errores de log) de nuestras aplicaciones web Java. Para ello, detecta señales a nivel de JVM y realiza análisis de código en la nube.

Toda la información surgida de la monitorización es cifrada haciendo uso de una clave secreta de 256 bits que sigue el estándar de cifrado AES proporcionada en el momento de su instalación y almacenada en los servidores de Takipi.

Takipi proporciona una interfaz web muy sencilla localizada en https://app.takipi.com/ que nos muestra tanto el código donde se produce el error como el valor de las variables en el momento de dicho error, permitiéndonos navegar por la pila de llamadas que lo han producido.

La ventaja de Takipi es que es él quién se pelea con los ficheros de log haciendo uso de un agente ligero que se ejecuta con nuestro servicio y nos lo muestra de una manera más “amigable”. Además, es posible trabajar de manera colaborativa añadiendo compañeros y creando issues que pueden ser discutidos y resueltos entre todos. Por otro lado, podemos publicar cualquier combinación de errores y eventos en devops como Jira, Slack y New Relic.

Finalmente, hay que decir que Takipi no es una herramienta gratuita. Podemos acceder a una versión de pruebas durante un período de 14 días en el que se nos proporciona acceso a un servidor y se nos permite monitorizar 10 errores por mes en una JVM. Finalizado ese período debemos pagar 69 euros al mes por servidor, en el que se nos permite monitorizar todas las JVMs que queramos, sin limitación de análisis de errores y con un mayor número de funcionalidades.

2. Entorno

Para llevar a cabo este tutorial se ha usado el siguiente entorno:

  • Hardware: Portátil MacBook Pro 15’ (2 GHz Intel Core i7, 8 GB 1333 MHz DDR3)
  • Sistema Operativo: Mac OS X Yosemite 10.10.3.
  • Takipi (Julio 2015).
  • Una aplicación web corriendo en un servidor Apache Tomcat 8.0.23, dentro de Eclipse Mars Release (4.5.0).

3. Instalación

La instalación de Takipi es muy sencilla y se lleva a cabo en pocos minutos.
Desde la página principal de Takipi https://www.takipi.com/, ingresamos nuestra dirección de correo electrónico en el siguiente cuadro de diálogo y le damos a Start using Takipi:

El siguiente paso será rellenar un formulario como el que vemos a continuación. En nuestro caso, seleccionamos en “I’m planning to use Takipi on Java”, aunque se pueden seleccionar otros tipos de lenguaje basados en Java como Scala.

Una vez rellenado el formulario, pasamos a la instalación de la herramienta. Seleccionamos la plataforma en la que la vamos a instalar y seguimos el método de instalación que nos proporcionan. En nuestro caso, seleccionamos la pestaña OS X y descargamos el instalador.

En este paso se proporciona una cosa muy importante: la clave secreta utilizada para el cifrado del que hablábamos en la introducción. Será necesario copiar esta clave en el portapapeles ya que luego será requerida por el instalador.

Esta clave se solicita siempre que se quiera realizar cambios avanzados en la configuración. Tras instalar Takipi podremos encontrar dicha clave en /Library/Takipi/work/secret.key (en Mac OSX).

Seguimos los pasos del instalador de Takipi hasta llegar a la siguiente ventana:

Será el momento de volver a nuestro navegador y conectar Takipi con nuestra JVM. En nuestro caso, haremos correr la aplicación web en un Tomcat dentro de Eclipse, por lo que elegiremos este IDE. Sin embargo, podemos elegir directamente Tomcat entre otras opciones, y nos dirán los pasos que debemos seguir.

Antes de ejecutar la aplicación en Tomcat, debemos añadir a los argumentos de entrada la opción -agentlib:TakipiAgent. Para ello, en Eclipse hacemos click con el botón derecho en el proyecto que queremos probar, elegimos Run As y seleccionamos Run Configurations. Nos vamos a la pestaña Arguments, y añadimos está opción en el cuadro VM arguments.

Selecccionamos Run, y nos volvemos a app.takipi.com en nuestro navegador. Testeamos la conexión y si obtenemos algo como lo que vemos en la siguiente imagen, querrá decir que Takipi será capaz de monitorizar nuestra aplicación.

Seleccionamos “Next” y Takipi se encontrará activo. Nos saldrá una ventana más que nos sugiere añadir compañeros de trabajo para trabajar conjuntamente en la resolución de problemas. Como ahora no nos interesa seleccionamos “Not Now” y la instalación habrá finalizado.

4. Primeros pasos

Cuando terminamos la instalación de Takipi, en https://app.takipi.com se nos abrirá la siguiente interfaz:

img8

Aquí es donde recibiremos, a modo de buzón de entrada, las excepciones o errores producidos en nuestra aplicación. Además, Takipi enviará estos errores a la cuenta de correo utilizada en el login.

Para probar Takipi hemos forzado algunos errores distintos en nuestra aplicación. Por ejemplo, hemos desconectado el servidor Postgresql en el que se encuentra nuestra base de datos, o hemos producido una excepción java.lang.NullPointerException de manera aleatoria.

Vamos a mostrar el error en la capa de persistencia, para eso lo seleccionamos en nuestra carpeta de entrada y Takipi nos llevará hasta la pantalla de análisis de error.

img9

Resumiré a grandes rasgos los diferentes elementos de esta pantalla, aún así Takipi ofrece tutoriales de inicio rápido muy visuales en los que explica su uso.

En la parte superior de la columna izquierda vemos la información del error, como la fecha y hora en la que se produjo. Si el error se ha reproducido en más ocasiones, se puede ver en que otros momentos se produjo. En esta parte se encuentran otro tipo de acciones, como la de compartir el error, publicarlo en otras herramientas, añadirle una etiqueta para luego combinarlo con otros errores, etc.

Justo debajo de este cuadro vemos la pila de llamadas entre métodos que han dado lugar a este error. Podemos navegar por ella y seleccionar un método concreto para visualizar el fragmento de código en el que se produce el error.

La zona principal de esta pantalla muestra el código y el valor de la variables en el momento en el que se produjo el error. De esta manera podemos detectar el problema de una forma muy sencilla y visual.

El valor de las variables lo podemos consultar tanto en la tabla localizada en el lado derecho de nuestro código o incluso llevando el cursor sobre ellas en el código.

En el caso concreto de nuestro ejemplo, vemos el error localizado en la línea de código señalizada con una especie de llama de fuego rojo.

Vemos que se produce a la hora de obtener una lista de localidades almacenadas en la base de datos. Como ya hemos dicho, el servidor postgresql está parado y por eso se está produciendo la excepción.

En el ejemplo en el que provocamos una excepción java.lang.NullPointerException en una variable, podemos ver claramente el momento en el que lanzamos dicha excepción.

Finalmente, Takipi nos muestra en esta ventana principal la pila de llamadas identificando las llamadas por la etiqueta Called By.

5. Conclusiones

Parece claro que frente a tener que recorrer nuestro archivos de logs para localizar errores y excepciones y poder solucionarlas, es mejor tener una aplicación visual como Takipi, que nos avisa cuando se producen errores en nuestros servicios y nos permite localizar el lugar exacto del código en el que se produce y una imagen de las variables en ese momento de la ejecución.

Tener esta información en la nube y hacer uso de un agente ligero elimina la posibilidad de sobrecargar nuestros recursos con una aplicación de estas características.

Por tanto, por su sencillez tanto en instalación como uso, y lo práctico de sus funcionalidades, recomiendo Takipi a todo aquel que quiera monitorizar los errores en sus Servicios Web Java de una manera más amigable a la habitual.

El “pero” lo encontramos lógicamente en que si queremos acceder a todas las funcionalidades más allá de la versión de prueba gratuita de 14 días tendremos que rascarnos el bolsillo, pero seguro que un servidor de producción nos sale rentable.

Esto ha sido todo, espero que os haya gustado.

Saludos.

Guetón Padrón Sánchez
gpadron@autentia.com

6. Referencias

https://www.takipi.com/

http://docs.takipi.com/

Dejar respuesta

Please enter your comment!
Please enter your name here