Skip to main content
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

Verwenden Sie ein älteres AppSignal-Ruby-Gem? Folgen Sie unserer Legacy-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-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.