Hoptoad: centralizando las excepciones de todas tus apps

Posted by joahking
on Sep 05, 08

Desde hace varios dias vengo pensando en tener una aplicacion de manejo centralizado de excepciones a la que mis production servers le envien las excepciones por web services. Algo como una extension al plugin excepcion_notifier, asi pensaba poder filtrarlas, que las vieran otros desarrolladores y demases.

Primero encontre mex una solucion parecida a la que queria, y ademas para Merb. Pero Merb cambia mucho ultimamente en su carrera a la version 1.0 y el codigo se rompe en algunas partes, y no la pude echar a correr.

Segui buscando hasta que di con Hoptoad un plugin de Rails que envia las excepciones a una solucion hosteada y free de los mismos autores de exception_notifier.

Hoptoad sucesor del exception_notifier

El equipo Thoughbot los mismos de Jester y Shoulda anuncian Hoptoad un plugin de Rails que envia las excepciones a una aplicacion que lleva control de bugs duplicados, frecuencia, y resolucion permitiendote un control de las excepciones de tus proyectos.

Instalacion

Los pasos para usarlo son simples: abrir una cuenta en Hoptoad, crear un proyecto desde el que se enviaran excepciones, y sigues las instrucciones, que son estas:

Instalas un plugin de rails, que esta en github
$ script/plugin install git://github.com/thoughtbot/hoptoad_notifier.git
Pones el archivo config/initializers/hoptoad.rb con este contenido:
HoptoadNotifier.configure do |config|
  config.api_key = 'api-key-de-tu-proyecto'
end
Pones como primera linea del ApplicationController esto:
include HoptoadNotifier::Catcher

Y ahora tienes una tarea de Rake que envia a Hoptoad unas notificaciones de prueba:

$ rake hoptoad:test
(in /home/joahking/dev/rails/...)
Setting up the Controller.
Processing request.
Raising 'HoptoadTestingException' to simulate application failure.

Si ves las tres ultimas lineas es que todo fue Ok, visitas la pagina de tu proyecto y ya estas listo para manejar tus excepciones.

Hoptoad es suficientemente listo como para diferenciar los environments, asi que no confundiras development con production.

Los chicos de reevoolab incluso han comenzado refactorizaciones para separar un poco el codigo de Hoptoad del proceso de inicializacion de Rails. Vamos, que las buenas noticias no acaban.

Nota para proyectos Rails 2.0.2

Si la tarea de Rake te falla con un error como este:
You might have expected an instance of Array.
The error occurred while evaluating nil.empty?
y te señala la linea 1 HoptoadNotifier.configure do |config| del hoptoad.rb es que no reconoce HoptoadNotifier señal de que no se instalo bien el plugin, en mi caso fue que habia que cambiar el protocolo de git a http asi:
script/plugin install git://github.com/thoughtbot/hoptoad_notifier.git
# y despues que instala dice
Plugin not found: ["http://github.com/technoweenie/restful-authentication.git"]

eso es que me instalo el plugin en vendor/plugins/hoptoad_notifier.git donde el .git sobra.

Renombras, y todo debe ir sobre ruedas…

Comments

Leave a response

Comment