Votre application utilise-t-elle une combinaison de Rails, Grape, Hanami, Padrino ou Sinatra ? Suivez notre guide pour instrumenter plusieurs applications Rack.
Installation
Après avoir installé la gem AppSignal, ajoutez l’intégration AppSignal après avoir requishanami/boot dans le fichier config.ru.
Gestion des exceptions
Hanami n’a pas de gestion des exceptions par défaut. Le serveur web (comme Puma ou Unicorn) affichera une page basique « internal server error » si une erreur se produit dans l’application. Ces exceptions non gérées seront automatiquement signalées à AppSignal. Le guide de gestion des exceptions Hanami explique comment ajouter une gestion personnalisée des exceptions aux applications Hanami pour afficher des pages d’erreur personnalisées. Les exceptions gérées ne seront pas signalées automatiquement à AppSignal. Nous recommandons d’ajouter le code suivant à la classe Action de base de l’application située dansapp/action.rb pour ajouter la gestion des exceptions pour StandardError. De cette façon, il n’est pas nécessaire d’ajouter la gestion des exceptions à chaque classe d’action.
Dans la méthode handle_standard_error, configurée par handle_exception, appelez l’assistant Appsignal.report_error pour signaler l’exception à AppSignal et ne manquer aucune erreur signalée par votre application. (Utilisez l’assistant Appsignal.set_error lorsque vous utilisez la gem Ruby version 3 ou antérieure.)
Appsignal.report_error aux exceptions Hanami que vous souhaitez signaler, AppSignal signalera ces erreurs chaque fois qu’elles se produiront.
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.
Traçage distribué
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.