Skip to main content
Hanami est officiellement pris en charge. L’instrumentation des applications Hanami nécessite une configuration manuelle. Suivez les étapes d’installation dans AppSignal en commençant par cliquer sur « Add app » sur l’écran des comptes.
Votre application utilise-t-elle une combinaison de Rails, Grape, Hanami, Padrino ou Sinatra ? Suivez notre guide pour instrumenter plusieurs applications Rack.
Cette page décrit l’intégration du framework Hanami, installé via la gem « hanami ». Le framework Hanami::API (de la gem « hanami-api ») n’est pas pris en charge.

Installation

Après avoir installé la gem AppSignal, ajoutez l’intégration AppSignal après avoir requis hanami/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 dans app/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.)
Après avoir ajouté la méthode 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.
Le span de la requête porte :
  • http.request.method — la méthode de la requête.
  • url.scheme, url.path et url.query — l’adresse demandée.
  • http.response.status_code — le statut avec lequel votre application a répondu.
Un span pour une requête qui a levé une erreur porte aussi 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.
Une requête qui arrive avec un en-tête de requête 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.