Um Rack-Anwendungen zu instrumentieren, stellt AppSignal eine Rack-Instrumentation-Middleware bereit. Wenn Sie eines der unterstützten Rack-Frameworks wie Rails, Sinatra, Hanami, Grape oder Padrino verwenden, empfehlen wir, stattdessen diese Instrumentationen zu verwenden.
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.
Stellen Sie sicher, dass die 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_status im Sample.
- Erfassung des Response-Statuscodes als Metrik
response_status mit den Tags namespace und status.
Die Rack-Instrumentation-Middleware
Wir empfehlen, zusätzlich zur Appsignal::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 Sample.
- 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
Die GenericInstrumentation-Middleware wurde in Ruby Gem 3.10.0 als veraltet markiert.
Bitte verwenden Sie stattdessen die neue Anleitung.
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.
Stellen Sie sicher, dass die 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, wie GET /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.
Verwenden Sie nicht den Request-Pfad der Route als Action-Namen, wenn der Pfad
dynamische Segmente enthält. Die Verwendung echter Request-Pfade als Action-Namen
bricht unsere Gruppierung der Anfragen, indem für jeden möglichen Request-Pfad
einzigartige Issues erzeugt werden.