Skip to main content
Hanami wird offiziell unterstützt. Die Instrumentierung von Hanami-Anwendungen erfordert manuelles Setup. Folgen Sie den Installationsschritten in AppSignal, beginnend mit einem Klick auf „Add app” auf dem Accounts-Bildschirm.
Verwendet Ihre Anwendung eine Kombination aus Rails, Grape, Hanami, Padrino oder Sinatra? Folgen Sie unserem Leitfaden zum Instrumentieren mehrerer Rack-Anwendungen.
Diese Seite beschreibt die Integration für das Hanami-Framework, das über das Gem „hanami” installiert wird. Das Framework Hanami::API (aus dem Gem „hanami-api”) wird nicht unterstützt.

Installation

Nachdem Sie das AppSignal-Gem installiert haben, fügen Sie die AppSignal-Integration nach dem Require von hanami/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 in app/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.)
Nachdem Sie die Methode 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.
Der Span des Requests enthält:
  • http.request.method — die Request-Methode.
  • url.scheme, url.path und url.query — die angefragte Adresse.
  • http.response.status_code — der Status, mit dem Ihre Anwendung geantwortet hat.
Ein Span für einen Request, der einen Fehler ausgelöst hat, enthält außerdem 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.
Eine Anfrage, die mit einem 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.