5 herramientas de rastreo de errores que todo desarrollador Java debe conocer
miƩrcoles, abril 22, 2015 at 5:22PM
javaHispano

Bug line

Raygun, Stack Hunter, Sentry, Takipi y Airbrake: herramientas modernas para ayudar a los desarrolladores a detener los errores antes que los errores detengan su aplicación.

This was originally posted on Takipi blog. Takipi tells you when and why code breaks in production. Learn more.

Con el ecosistema Java que sigue avanzando, las aplicaciones web sirviendo un número creciente de solicitudes y la demanda de los usuarios de un alto desempeño, nace una nueva era de herramientas modernas de desarrollo. Un entorno ágil con implementaciones rápidas requiere un seguimiento de errores, así como que se obtenga información sobre el comportamiento de la aplicación a un nivel que resulta insostenible para los métodos tradicionales. En este artículo, hemos decidido reunir cinco de esas herramientas, ver cómo se integran con Java y averiguar qué clase de trucos tienen bajo la manga. Es tiempo de aplastar a algunos errores (bugs).

Raygun

Raygun, de Mindscape, es un sistema web de administración de errores que realiza un seguimiento de las excepciones arrojadas por tus aplicaciones. Soporta varios lenguajes de programación web, móvil y de escritorio, tales como Java, Scala, .NET, Python, PHP y JavaScript. Además de todo eso, es posible enviar errores a Raygun a través de una API REST y algunos otros Proveedores (así es como llaman a las integraciones entre lenguajes y frameworks) llegaron a existir gracias al compromiso y esfuerzo de la comunidad de desarrolladores.

Raygun screenshots

Características clave:

Desde la óptica de Java: Para usar Raygun con Java, vas a tener que agregar algunas dependencias a tu archivo pom.xml si estás usando Maven o sino añadir los jars de forma manual. El segundo paso sería agregar un UncaughtExceptionHandler, lo cual crearía una instancia de RaygunClient y le enviaría tus excepciones a él. Asimismo, también puedes añadir campos de datos personalizados a tus excepciones y enviarlos todos juntos a Raygun. Aquí puedes ver una explicación más detallada.

Entre bambalinas: Te presentamos a Robie Robot, el operador certificado de Raygun. Como en el auténtico Ray Gun.

Puedes encontrarlo en: https://raygun.io

Sentry

Iniciado como un proyecto complementario, Sentry es una solución web de código abierto que actúa como una plataforma de agregación y registro de eventos en tiempo real. Monitorea los errores y muestra cuándo, dónde y a quién le ocurren, comprometiéndose a hacerlo sin limitarse a confiar únicamente en el feedback brindado por los usuarios. Algunos de los lenguajes y frameworks soportados son Ruby, Python, JS, Java, Django, iOS, .NET y la lista sigue.

Sentry screenshot

Características clave:

Desde la óptica de Java: El cliente Java de Sentry se llama Raven y soporta los frameworks de registro más populares en la actualidad, como por ejemplo java.util.logging, Log4j, Log4j2 y Logback con Slf4j. También ofrece un método independiente para enviarle los eventos directamente a Sentry. Para configurar Sentry para Java con Logback, por ejemplo, tienes que añadir las dependencias de forma manual o a través de Maven, luego agregar una nueva configuración de adicionador (appender), y está pronto. Puedes leer las instrucciones aquí.

Entre bambalinas: Sentry fue un proyecto interno de Disqus, allá por 2010, pensado para resolver el registro de excepciones en una aplicación Django, por Chris Jennings y David Cramer

Puedes encontrarlo en: https://www.getsentry.com/

Takipi

A diferencia de la mayoría de las herramientas, Takipi es mucho más que un embellecedor de la traza de la pila. Fue creado con un objetivo claro en mente: decirle a los desarrolladores cuándo y por qué el código de producción falla. En cualquier momento en que se lanza una nueva excepción u ocurre un error de registro, Takipi lo captura y te muestra qué estado de variable lo causó, a través de métodos y máquinas. Takipi resaltará esto sobre el código que se ejecutó precisamente en el momento del error, para que puedas analizar la excepción como si estuvieras allí cuando ocurrió.

Takipi screenshot

Características clave:

Desde la óptica de Java: Takipi fue creado para ser utilizado en entornos de producción en Java y Scala. La instalación dura menos de un minuto e incluye la adición de un agente Java a tu JVM.

Entre bambalinas: Cada tipo de excepción y cada error tiene un monstruo en particular que lo representa. Puedes averiguar más sobre estos monstruos aquí.

Puedes encontrarlo en: http://www.takipi.com/

Airbrake

Otra herramienta que tiene el rastreo de excepciones en la mira es Airbrake, de Rackspace, con la misión declarada de “No más búsquedas de archivos de registro”. Brinda a sus usuarios una interfaz web que contiene un panel de administración con los detalles de los errores y una vista específica para cada aplicación. Los lenguajes que soporta son Ruby, PHP, Java, .NET, Python, y hasta… Swift.

Airbrake screenshots

Características clave:

Desde la óptica de Java: Oficialmente, Airbrake únicamente soporta Log4j, aunque también hay una librería de Logback disponible. Lo que le falta por ahora es el soporte para Log4j2. El proceso de instalación es muy parecido al de Sentry, agregando algunas dependencias de forma manual o a través de Maven, luego añadiendo un adicionador, y todo pronto. De manera similar, una forma directa de enviar mensajes a Airbrake es hacerlo a través de AirbrakeNotice y AirbrakeNotifier. Puedes encontrar más información al respecto aquí.

Entre bambalinas: Airbrake fue adquirida por Exceptional, a su vez adquirida por Rackspace.

Puedes encontrarlo en: https://airbrake.io/

StackHunter

Actualmente en beta, Stack Hunter brinda una herramienta con alojamiento propio para rastrear tus excepciones Java. Ese tipo de alojamiento representa un cambio con respecto a otras herramientas anteriores. A no ser por eso, apunta a proveer posibilidades similares para informar a los desarrolladores sobre sus excepciones y ayudarlos a resolverlas más rápido.

StackHunter screenshot

Características clave:

Desde la óptica de Java: Construido específicamente para Java, StackHunter se ejecuta en cualquier contenedor de servlets que corra Java 6 en adelante. La instalación incluye la ejecución de StackHunter en un servlet local, la configuración de un servidor de correo saliente para enviar alertas, así como la configuración de la aplicación de la que deseas tener registros. Aquí puedes leer instrucciones más detalladas.

Entre bambalinas: StackHunter es desarrollado por Dele Taylor, que también trabaja en Data Pipeline, una herramienta para transformar y migrar datos en Java.

Puedes encontrarlo en: http://stackhunter.com/

Bonus: ABRT

Otro abordaje al rastreo de errores que es digno de mención aquí es el usado por ABRT, una herramienta automática de detección e informes de errores del ecosistema Fedora, un proyecto comunitario promovido por Red Hat. A diferencia de las cinco herramientas que analizamos, esta no está pensada exclusivamente para ser utilizada por los desarrolladores de la aplicación, sino también por sus propios usuarios. De esta manera, Red Hat recibe informes de errores con mucho mayor contexto que, de otra forma, hubiera sido muy difícil de entender y depurar.

ABRT

Desde la óptica de Java: El soporte para excepciones Java está todavía en etapa de prueba del concepto. Aquí puedes encontrar un conector Java desarrollado por Jakub Filák.

Entre bambalinas: ABRT es un proyecto de código abierto desarrollado por Red Hat.

Puedes encontrarlo en: https://github.com/abrt/abrt

http://image.slidesharecdn.com/5errortrackingtools-140923043347-phpapp02/95/5-error-tracking-tools-java-developers-should-know-1-638.jpg?cb=1411465266

¿Nos faltó alguna otra herramienta? ¿Cómo rastreas tú las excepciones? Déjanos saberlo en la sección de comentarios que aparece más abajo.

Article originally appeared on javaHispano (http://www.javahispano.org/).
See website for complete article licensing information.