Instrumentation-Middleware hinzufügen
Um AppSignal in eine Rack-Anwendung zu integrieren, müssen wir zunächst AppSignal laden, konfigurieren und starten. Instrumentieren Sie dann die Rack-App, indem Sie unsere Rack-EventMiddleware und InstrumentationMiddleware zum Middleware-Stack hinzufügen.
Diese Dokumentation erklärt, wie Sie dies in der config.ru-Datei Ihrer Anwendung tun.
EventMiddleware und die InstrumentationMiddleware so früh wie möglich im Middleware-Stack der Anwendung registriert werden. Je früher diese Middlewares registriert sind, desto mehr Request-Laufzeit instrumentiert die Middleware. Wenn andere Middlewares zuvor registriert werden, instrumentiert unsere Middleware diese anderen Middlewares nicht.
Nachdem Sie die EventMiddleware und die InstrumentationMiddleware zum Middleware-Stack Ihrer App hinzugefügt haben, muss die Action für jede Route in Ihrer App in AppSignal gesetzt werden. Ohne einen Action-Namen, der Anfragen gruppiert, meldet die Event-Middleware keine Anfrage-Informationen.
Für tiefere Einblicke in den Betrieb Ihrer Rack-Anwendung empfehlen wir, zusätzliche Instrumentation zu den Endpunkten der Anwendung hinzuzufügen.
Die Rack-Event-Middleware
Wir empfehlen, unsere Rack-Event-Middleware zu allen Rack-Anwendungen hinzuzufügen. Diese Middleware stellt sicher, dass wir Folgendes erfassen: Die AppSignal-Rack-Event-Middleware bietet die folgenden Funktionen:- Instrumentation des Requests und Aufzeichnung eines
process_request.rack-Events. - Meldung von Ausnahmen, die in der App und in Middlewares auftreten.
- Erfassung des Response-Statuscodes als Tag
response_statusim Trace. - Erfassung des Response-Statuscodes als Metrik
response_statusmit den Tagsnamespaceundstatus.
Die Rack-Instrumentation-Middleware
Wir empfehlen, zusätzlich zurAppsignal::Rack::EventMiddleware auch die AppSignal::Rack::InstrumentationMiddleware zur App hinzuzufügen. Diese Middleware ergänzt die Instrumentation der Event-Middleware, indem sie Tags für den Request-Pfad und die Request-Methode hinzufügt sowie die Verarbeitung und das Schließen des Response-Bodys verfolgt.
Die Instrumentation-Middleware bietet die folgenden Funktionen:
- Instrumentation des Requests und Aufzeichnung eines
process_request.rack-Events. - Meldung von Ausnahmen, die in der App auftreten.
- Erfassung des Request-Pfads und der Request-Methode als Tags im Trace.
- Instrumentation der Verarbeitung des Response-Bodys und Aufzeichnung eines
process_response_body.rack-Events für diese Operation. - Instrumentation des Schließens des Response-Bodys und Aufzeichnung eines
close_response_body.rack-Events für diese Operation.
Verwendung der Legacy-Instrumentation-Middleware
Um AppSignal in eine Rack-Anwendung zu integrieren, müssen wir zunächst AppSignal laden, konfigurieren und starten. Instrumentieren Sie dann die Rack-App, indem Sie unsere Rack-GenericInstrumentation-Middleware zum Middleware-Stack hinzufügen.
Diese Dokumentation erklärt, wie Sie dies in der config.ru-Datei Ihrer Anwendung tun.
EventMiddleware und die InstrumentationMiddleware so früh wie möglich im Middleware-Stack der Anwendung registriert werden. Je früher diese Middlewares registriert sind, desto mehr Request-Laufzeit instrumentiert die Middleware. Wenn andere Middlewares zuvor registriert werden, instrumentiert unsere Middleware diese anderen Middlewares nicht.
Nachdem Sie die EventMiddleware und die InstrumentationMiddleware zum Middleware-Stack Ihrer App hinzugefügt haben, muss die Action für jede Route in Ihrer App in AppSignal gesetzt werden. Ohne einen Action-Namen, der Anfragen gruppiert, meldet die Event-Middleware keine Anfrage-Informationen.
Für tiefere Einblicke in den Betrieb Ihrer Rack-Anwendung empfehlen wir, zusätzliche Instrumentation zu den Endpunkten der Anwendung hinzuzufügen.
Action-Name setzen
Setzen Sie einen Action-Namen auf die AppSignal-Transaktion für eine Anfrage, damit wir Endpunkte in unseren Issues und Metriken gruppieren können. Wir empfehlen, pro Endpunkt einen statischen Action-Namen zu verwenden, wieGET /blog, POST /users, PUT /users/:id usw.
Um einen Action-Namen für eine Anfrage zu setzen, rufen Sie den Helper Appsignal.set_action aus der App auf.
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.
Distributed 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.