Airbrake for monitoring & detection of Errors

Airbrake es un software de monitoreo de errores, que la mayoría de nosotros, los desarrolladores, recibimos con los brazos abiertos. Básicamente, le ayuda a lidiar con los errores de producción, manteniendo un registro de los mismos, capturando la URL exacta, el número de apariciones, el archivo culpable que causó el error, en definitiva, un seguimiento completo de la pila al que puede recurrir.
Se parece a esto;

Lo que está viendo arriba es una instantánea de un error resuelto, específicamente el error AbstractController::ActionNotFound.
Como puede ver, toda la información está bellamente desglosada para brindar toda la ayuda necesaria en la depuración. Y esta es sólo una de las pestañas, hay más información para que profundices.

Para aplicaciones Ruby on Rails, puede integrar Airbrake agrupando la gema Airbrake. Un par de pasos que siguen a este proceso se resumen decentemente en la página de GitHub de Gem. Puede llegar a esa página siguiendo la página de Airbrake GitHub

Entonces, pasemos ahora a los errores. ¿Cómo haces para arreglarlos?
Puedes silenciar el error, de esa manera Airbrake no te gritará a todo pulmón que lo arregles. Seguirá apareciendo en la lista de errores, para que puedas seleccionarlo cuando te convenga, así que no te preocupes porque se perderá en un agujero negro de errores.
Ahora viene lo principal, solucionarlos. Profundizando en su código para determinar la causa raíz y solucionándola en ese mismo nivel.

Intentemos analizar uno.
El que viste arriba, AbstractController::ActionNotFound . Analicemos éste.
After letting this error play with my sanity for some time, I was able to deduce the cause. It is the result of a bad request from the server. Somebody was trying to outsmart the application, by editing the URL of the page he/she was on at that moment, and landing upon a page from his imagination. How I got to this conclusion was by reproducing the same on my local system. I tried following the URL, by editing the host string and voila! The beast came out of his hiding place. I was greeted by Rails telling me that the Action I requested didn’t exist. This being a result of random actions of the user, was an error that couldn’t really be restricted as I didn’t have control over what the user would decide to visit!
Fue entonces cuando realmente pude identificarme con el modismo: La ignorancia es felicidad <3
Entonces, agregué la solución para esto en mi archivo airbrake.rb, que es uno de los archivos inicializadores en el directorio de su proyecto.
El bloque de código del salvador era,

¡Hecho con eso!
Otra belleza que encontré fue el error SidekiqStatus::Container::StatusNotFound.

Este fue un poco complicado de depurar. Tuve que molestar a mis compañeros y estuvimos rascándonos la cabeza durante bastante tiempo.
Nuestros trabajos en segundo plano se manejan mediante Sidekiq.
Entonces, Sidekiq no estaba obteniendo el estatus de algo. Después de pasar un tiempo, no más del que debería tener *tos, tos*, llegué a la causa raíz. Sucedía porque había una llamada de Javascript en el código vinculado al evento DOMSubtreeModified (que ahora está en desuso, referencia: DOMSubtreeModified Deprecated). Sidekiq necesitaba un ID de trabajo para devolver el estado, y la llamada para obtener el ID de trabajo se escribió dentro del Javascript incluido en este evento vinculado. Se llamaba al script cada vez que se producía algún cambio en el nivel DOM en la página, independientemente de si el trabajo en segundo plano se estaba ejecutando o no. Esto provocó que el ID del trabajo fuera nulo en ocasiones, lo que provocaba un error al recuperar el estado de Sidekiq.
La solución para esto fue reemplazar ese código y llamar al método explícitamente cada vez que se requiriera la acción. Esto pudo manejar el error y cuando intentamos reproducirlo, ¡nada! ¡Viva!
Estos son los dos errores con los que me enfrenté más recientemente y sentí la necesidad de documentarlos, para referencia futura y para otros desarrolladores que puedan enfrentar problemas similares. Eso es todo por ahora.

RielesCarma combina destreza técnica con un conocimiento profundo de la industria para servir como un socio perfecto para las empresas emergentes en la creación de aplicaciones Ruby on Rails agradables, funcionales y escalables. Con nuestro enfoque centrado en soluciones, su empresa podrá disfrutar de resultados definitivos en términos de rendimiento.

Entonces, ¿tienes una gran idea? ¡A nuestros expertos les encantaría explorar la oportunidad de convertirla en una aplicación exitosa con usted!

¡Salud!
Niyanta


Ahorrar

Ahorrar

Artículos Relacionados

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Spanish
English
English
Japanese
German
French
Spanish

envíanos whatsapp

Salir de la versión móvil