Airbrake for monitoring & detection of Errors

Airbrake ist eine Fehlerüberwachungssoftware, die die meisten von uns Entwicklern mit offenen Armen begrüßen. Im Grunde hilft es Ihnen, mit Produktionsfehlern umzugehen, indem es ein Protokoll dafür führt, die genaue URL, die Anzahl der Vorkommnisse, die Datei, die den Fehler verursacht hat, erfasst – alles in allem – einen vollständigen Stack-Trace, auf den Sie zurückgreifen können.
Es sieht ungefähr so aus;

Was Sie oben sehen, ist eine Momentaufnahme eines behobenen Fehlers, insbesondere des AbstractController::ActionNotFound-Fehlers.
Wie Sie sehen können, sind alle Informationen schön aufgeschlüsselt, um die beim Debuggen benötigte Hilfe zu bieten. Und dies ist nur eine der Registerkarten. Dort finden Sie weitere Informationen, die Sie sich ansehen können.

Für Ruby on Rails-Anwendungen können Sie Airbrake integrieren, indem Sie das Airbrake-Gem bündeln. Ein paar Schritte, die diesem Prozess folgen, sind auf der GitHub-Seite für Gem gut zusammengefasst. Sie können diese Seite über die Airbrake-GitHub-Seite erreichen

Kommen wir nun zu den Fehlern. Wie gehen Sie vor, um sie zu beheben?
Sie können den Fehler entweder stummschalten, damit Airbrake nicht aus vollem Halse schreit, Sie sollen den Fehler beheben. Es wird weiterhin in der Fehlerliste angezeigt, sodass Sie es jederzeit abrufen können. Machen Sie sich also keine Sorgen, dass es in einem schwarzen Loch voller Fehler verloren geht.
Jetzt kommt die Hauptsache, sie zu lösen. Indem Sie in Ihrem Code nach der Grundursache suchen und diese auf dieser Ebene beheben.

Versuchen wir, eines zu analysieren.
Das, was Sie oben gesehen haben, AbstractController::ActionNotFound . Lassen Sie uns das genauer unter die Lupe nehmen.
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!
Da konnte ich mich tatsächlich mit der Redewendung „Unwissenheit ist Glückseligkeit“ identifizieren <3
Daher habe ich den Fix dafür in meine Datei „airbrake.rb“ eingefügt, die eine der Initialisierungsdateien in Ihrem Projektverzeichnis ist.
Der rettende Codeblock war:

Fertig damit!
Eine weitere solche Schönheit, auf die ich gestoßen bin, war der SidekiqStatus::Container::StatusNotFound-Fehler.

Dieses Problem war etwas schwierig zu debuggen. Ich musste meine Teamkollegen belästigen und wir zweifelten eine ganze Weile am Kopf.
Unsere Hintergrundjobs werden mit Sidekiq abgewickelt.
Sidekiq bekam also keinen Status. Nachdem ich einige Zeit aufgewendet hatte, nicht mehr als ich hätte haben sollen *hust hust*, bin ich der Ursache auf den Grund gegangen. Dies geschah, weil es einen Javascript-Aufruf im Code gab, der an das Ereignis DOMSubtreeModified gebunden war (das jetzt veraltet ist, Referenz: DOMSubtreeModified Deprecated). Sidekiq benötigte eine Job-ID, um den Status zurückzugeben, und der Aufruf zum Abrufen der Job-ID wurde in das von diesem gebundenen Ereignis eingeschlossene Javascript geschrieben. Das Skript wurde jedes Mal aufgerufen, wenn sich die DOM-Ebene auf der Seite änderte, unabhängig davon, ob der Hintergrundjob ausgeführt wurde oder nicht. Dies führte dazu, dass die Job-ID zeitweise Null war, was dazu führte, dass der Status nicht mehr von Sidekiq abgerufen werden konnte.
Die Lösung hierfür bestand darin, diesen Code zu ersetzen und die Methode jedes Mal explizit aufzurufen, wenn die Aktion erforderlich war. Dadurch konnte der Fehler behoben werden, und als wir versuchten, ihn zu reproduzieren, passierte nichts! Hurra!
Dies sind die beiden Fehler, mit denen ich mich zuletzt beschäftigt habe, und ich hatte das Bedürfnis, sie zu dokumentieren, sowohl als Referenz für die Zukunft als auch für andere Entwickler da draußen, die möglicherweise mit ähnlichen Problemen konfrontiert sind. Das ist alles für den Moment.

SchienenCarma kombiniert technisches Können mit fundierten Branchenkenntnissen und dient so als perfekter Partner für Startups bei der Entwicklung angenehmer, funktionaler und skalierbarer Ruby on Rails-Anwendungen. Mit unserem lösungsorientierten Ansatz kann Ihr Unternehmen definitive Ergebnisse in Bezug auf die Leistung erzielen.

Haben Sie eine tolle Idee? Unsere Experten würden gerne gemeinsam mit Ihnen die Möglichkeit erkunden, daraus eine erfolgreiche App zu entwickeln!

Prost!
Niyanta


Speichern

Speichern

zusammenhängende Posts

Hinterlasse einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

German
English
English
Japanese
German
French
Spanish

WhatsApp uns

Beenden Sie die mobile Version