Verwendet Ihre Anwendung eine Kombination aus Rails, Grape, Hanami, Padrino oder Sinatra? Folgen Sie unserem Leitfaden zum Instrumentieren mehrerer Rack-Anwendungen.
Installation
Nachdem Sie das AppSignal-Gem installiert haben, fügen Sie die AppSignal-Integration nach dem Require vonhanami/boot in der config.ru-Datei hinzu.
Exception-Handling
Hanami verfügt standardmäßig über kein Exception-Handling. Der Webserver (etwa Puma oder Unicorn) zeigt eine einfache „internal server error”-Seite an, wenn in der App ein Fehler auftritt. Diese unbehandelten Ausnahmen werden automatisch an AppSignal gemeldet. Der Hanami-Leitfaden zum Exception-Handling erklärt, wie benutzerdefiniertes Exception-Handling zu Hanami-Anwendungen hinzugefügt werden kann, um eigene Fehlerseiten zu rendern. Behandelte Ausnahmen werden nicht automatisch an AppSignal gemeldet. Wir empfehlen, den folgenden Code zur Basis-Action-Klasse der Anwendung inapp/action.rb hinzuzufügen, um Exception-Handling für StandardError zu ergänzen. Auf diese Weise ist es nicht nötig, jeder Action-Klasse Exception-Handling hinzuzufügen.
Rufen Sie in der Methode handle_standard_error, die mit handle_exception konfiguriert wird, den Helper Appsignal.report_error auf, um die Ausnahme an AppSignal zu melden und keine Fehler zu verpassen, die von Ihrer App gemeldet werden. (Verwenden Sie den Helper Appsignal.set_error, wenn Sie Ruby-Gem-Version 3 oder älter verwenden.)
Appsignal.report_error zu den Hanami-Ausnahmen hinzugefügt haben, die Sie melden möchten, meldet AppSignal diese Fehler, sobald sie auftreten.
Span-Attribute
Nur im Collector-Modus: Dies gilt, wenn AppSignal für Ruby im Collector-Modus läuft. Andernfalls hat es keine Auswirkung.
http.request.method— die Request-Methode.url.scheme,url.pathundurl.query— die angefragte Adresse.http.response.status_code— der Status, mit dem Ihre Anwendung geantwortet hat.
error.type, die Klasse des Fehlers.
Verteiltes Tracing
Nur im Collector-Modus: Dies gilt, wenn AppSignal für Ruby im Collector-Modus läuft. Andernfalls hat es keine Auswirkung.
traceparent-Request-Header eintrifft, setzt den darin benannten Trace fort.
Die Anfrage erscheint innerhalb des Trace des aufrufenden Service, unter der Anfrage, die sie ausgelöst hat. Sie können eine langsame Anfrage von diesem Service aus in diese Anwendung hinein verfolgen, ohne den Trace zu wechseln.
Die HTTP-Clients, die AppSignal unterstützt, starten den Trace. Eine Anfrage ohne den Header startet einen neuen.