Ajouter le middleware d’instrumentation
Pour intégrer AppSignal dans une application Rack, nous devons d’abord charger, configurer et démarrer AppSignal. Ensuite, instrumentez l’application Rack en ajoutant nos middlewares RackEventMiddleware et InstrumentationMiddleware à la pile de middlewares.
Cette documentation explique comment procéder dans le fichier config.ru de votre application.
EventMiddleware et InstrumentationMiddleware sont enregistrés dans la pile de middlewares de l’application aussi tôt que possible. Plus ces middlewares sont enregistrés tôt, plus l’exécution de la requête instrumentée par les middlewares sera importante. Si d’autres middlewares sont enregistrés au préalable, nos middlewares n’instrumenteront pas ces autres middlewares.
Après avoir ajouté les EventMiddleware et InstrumentationMiddleware à la pile de middlewares de votre application, l’action doit être définie pour chaque route de votre application dans AppSignal. Sans nom d’action pour regrouper les requêtes, le middleware d’événements ne signalera pas les informations de requête.
Pour plus d’informations sur le fonctionnement de votre application Rack, nous recommandons d’ajouter une instrumentation supplémentaire aux endpoints de l’application.
Le middleware d’événements Rack
Nous recommandons d’ajouter notre middleware d’événements Rack à toutes les applications Rack. Ce middleware garantira que nous suivons Le middleware d’événements Rack AppSignal présente les fonctionnalités suivantes :- Instrumentation de la requête et enregistrement d’un événement
process_request.rack. - Signalement des exceptions qui se produisent dans l’application et le middleware.
- Suivi du code de statut de la réponse comme tag
response_statussur la trace. - Suivi du code de statut de la réponse comme métrique
response_status, avec les tagsnamespaceetstatus.
Le middleware d’instrumentation Rack
Nous recommandons qu’en plus duAppsignal::Rack::EventMiddleware, le AppSignal::Rack::InstrumentationMiddleware soit ajouté à l’application. Ce middleware complète l’instrumentation du middleware d’événements en ajoutant des tags pour le chemin et la méthode de requête, ainsi qu’en suivant la gestion du corps de réponse et les opérations de fermeture du corps de réponse.
Le middleware d’instrumentation présente les fonctionnalités suivantes :
- Instrumentation de la requête et enregistrement d’un événement
process_request.rack. - Signalement des exceptions qui se produisent dans l’application.
- Suivi du chemin et de la méthode de requête comme tags sur la trace.
- Instrumentation de la gestion du corps de réponse et enregistrement d’un événement
process_response_body.rackpour cette opération. - Instrumentation de la fermeture du corps de réponse et enregistrement d’un événement
close_response_body.rackpour cette opération.
Utilisation du middleware d’instrumentation hérité
Pour intégrer AppSignal dans une application Rack, nous devons d’abord charger, configurer et démarrer AppSignal. Ensuite, instrumentez l’application Rack en ajoutant notre middleware RackGenericInstrumentation à la pile de middlewares.
Cette documentation explique comment procéder dans le fichier config.ru de votre application.
EventMiddleware et InstrumentationMiddleware sont enregistrés dans la pile de middlewares de l’application aussi tôt que possible. Plus ces middlewares sont enregistrés tôt, plus l’exécution de la requête instrumentée par les middlewares sera importante. Si d’autres middlewares sont enregistrés au préalable, nos middlewares n’instrumenteront pas ces autres middlewares.
Après avoir ajouté les EventMiddleware et InstrumentationMiddleware à la pile de middlewares de votre application, l’action doit être définie pour chaque route de votre application dans AppSignal. Sans nom d’action pour regrouper les requêtes, le middleware d’événements ne signalera pas les informations de requête.
Pour plus d’informations sur le fonctionnement de votre application Rack, nous recommandons d’ajouter une instrumentation supplémentaire aux endpoints de l’application.
Définition du nom d’action
Définissez un nom d’action sur la transaction AppSignal pour une requête afin que nous puissions regrouper les endpoints dans nos incidents et métriques. Nous recommandons d’utiliser un nom d’action statique par endpoint, commeGET /blog, POST /users, PUT /users/:id, etc.
Pour définir un nom d’action pour une requête, appelez l’assistant Appsignal.set_action depuis l’application.
Attributs de span
Mode collector uniquement : ceci s’applique lorsqu’AppSignal pour Ruby s’exécute en mode collector. Cela n’a aucun effet dans les autres cas.
http.request.method— la méthode de la requête.url.scheme,url.patheturl.query— l’adresse demandée.http.response.status_code— le statut avec lequel votre application a répondu.
error.type, la classe de l’erreur.
Distributed tracing
Mode collector uniquement : ceci s’applique lorsqu’AppSignal pour Ruby s’exécute en mode collector. Cela n’a aucun effet dans les autres cas.
traceparent poursuit la trace qu’il désigne.
La requête apparaît au sein de la trace du service appelant, sous la requête qui l’a provoquée. Vous pouvez suivre une requête lente depuis ce service jusque dans cette application, sans changer de trace.
Les clients HTTP pris en charge par AppSignal démarrent la trace. Une requête sans cet en-tête en démarre une nouvelle.