Zum Hauptinhalt springen
Hinweis: Unterstützung für benutzerdefinierte Namespaces wurde in Version 1.3.0 des AppSignal-für-Elixir-Pakets hinzugefügt.
Das AppSignal-für-Elixir-Paket integriert sich mit Plug. Um die Integration einzurichten, folgen Sie bitte unserem Installationsleitfaden. Diese Seite beschreibt, wie Sie AppSignal in einer Plug-Anwendung einrichten und wie Sie Instrumentierung für Events innerhalb von Anfragen hinzufügen. Weitere Informationen zur benutzerdefinierten Instrumentierung finden Sie in der Elixir- Instrumentierungs-Dokumentation. Weitere Informationen finden Sie in der AppSignal-Hex-Paket- Dokumentation.

Installation

Die AppSignal-Instrumentierung für Plug ist Teil eines separaten Pakets, das vom primären appsignal-Paket abhängt. Fügen Sie das Paket appsignal_plug zu Ihrer mix.exs-Datei hinzu.
Wenn Sie bereits unser appsignal_phoenix-Paket verwenden, ist es nicht notwendig, das appsignal_plug-Paket hinzuzufügen, da es bereits eine Abhängigkeit des appsignal_phoenix-Pakets ist. Siehe auch unsere Phoenix-Integrationsanleitung.

Eingehende HTTP-Anfragen

Wir beginnen mit einer kleinen Plug-App, die GET-Anfragen an / annimmt und eine Willkommensnachricht zurückgibt. Um in dieser App mit dem Protokollieren von HTTP-Anfragen zu beginnen, verwenden wir das Modul Appsignal.Plug.
Dies erstellt für jede HTTP-Anfrage, die auf dem Endpunkt ausgeführt wird, eine Transaktion.

Benutzerdefinierte Instrumentierung

Obwohl Appsignal.Plug Transaktionen für Sie startet, instrumentiert es noch keine Events in Ihrer App. Dafür müssen wir etwas benutzerdefinierte Instrumentierung hinzufügen. Diese Beispiel-App sieht aus wie die, die wir zuvor verwendet haben, aber sie hat eine langsame Funktion (passenderweise slow/0 genannt), für die wir Instrumentierung hinzufügen möchten. Dazu müssen wir den Helfer Appsignal.instrument/2-3 in unserer aufgerufenen Funktion verwenden:
Dies fügt der aktuellen Transaktion ein Event für die Funktion slow/0 hinzu, wann immer sie aufgerufen wird. Weitere Informationen zur benutzerdefinierten Instrumentierung finden Sie in der Elixir-Instrumentierungs-Dokumentation.

Instrumentierung für eingebundene Plugs

Ausnahmen in eingebundenen Plugs werden automatisch von AppSignal abgefangen, aber Performance-Samples müssen manuell mit den benutzerdefinierten Instrumentierungs- Helfern oder Decoratoren eingerichtet werden.

Plug-Instrumentierung mit Decoratoren

Um Plugs Instrumentierung hinzuzufügen, verwenden Sie die Funktion Appsignal.instrument/2: