Skip to main content
AppSignal prend en charge de nombreuses gems prêtes à l’emploi et ne nécessite pas d’instrumentation supplémentaire pour signaler les données d’erreur et de performance. Pour les scripts personnalisés et les bibliothèques que nous ne prenons pas en charge, vous pouvez ajouter une surveillance en suivant ce guide.

Surveillance des scripts

Un échantillon AppSignal est composé de deux éléments : une transaction et des événements. Avant de signaler des événements avec nos assistants d’instrumentation, vous devez d’abord créer une transaction. Utilisez l’assistant Appsignal.monitor pour créer une transaction et la rendre active pendant la durée du bloc donné. L’assistant monitor signalera le bloc de code instrumenté sous forme de mesures de performance répertoriées dans la section Performance de l’interface utilisateur AppSignal, regroupées par nom d’action. Il suivra la durée du bloc et signalera les exceptions qui s’y produisent.
L’assistant monitor accepte deux arguments par mots-clés :
  • namespace (Facultatif) : personnalise le namespace de la transaction. La valeur par défaut est « web ».
  • action (Obligatoire) : nous regroupons les échantillons du script par ce nom d’action pour la création d’incidents et les notifications. Sans nom d’action, aucune information sur le bloc surveillé n’est signalée, car nous ne savons pas comment regrouper les données.

Définir le nom de l’action ultérieurement

L’argument action de l’assistant Appsignal.monitor peut être laissé nil ou explicitement défini sur :set_later, mais uniquement si l’assistant Appsignal.set_action est toujours appelé à l’intérieur du bloc pour définir le nom de l’action. Sans nom d’action, aucune donnée n’est signalée concernant le bloc instrumenté. Cette méthode de définition du nom de l’action peut être utile si le nom de l’action ne peut être déterminé que lors d’une étape de traitement à l’intérieur du bloc.

Événements d’instrumentation

Par défaut, la gem Ruby signalera les événements des intégrations prises en charge. Ces événements apparaîtront dans la chronologie des événements. Utilisez nos assistants d’instrumentation pour ajouter vos propres événements à la chronologie des événements. Cela crée une répartition plus détaillée de ce qui se passe à l’intérieur du bloc surveillé.

Obligation d’arrêt

Pour les scripts exécutés sur des hôtes de courte durée, il est nécessaire d’arrêter la gem Ruby AppSignal avant que le script ne se termine. Cela garantit qu’elle signale les données du script à AppSignal avant que l’hôte ne s’éteigne. Ce comportement n’est nécessaire que dans des scénarios tels que :
  • Lorsqu’une tâche planifiée (un cron job) est exécutée par un service d’hébergement.
  • Lorsqu’un script est exécuté sur un conteneur qui démarre pour exécuter ce script et s’arrête lorsque le script se termine.
  • Lorsqu’un script est exécuté sur un runner Heroku, ou des fournisseurs d’hébergement similaires.
Il n’est pas nécessaire d’arrêter la gem Ruby AppSignal si l’hôte sur lequel le script est démarré continue de fonctionner après la fin du script. AppSignal est arrêté automatiquement lorsque le script se termine et qu’un conteneur ou un environnement d’hébergement comme Heroku est détecté. Ce comportement est contrôlé par l’option enable_at_exit_hook. Assurez-vous que cette option est définie sur true pour les scripts qui nécessitent l’arrêt d’AppSignal, si elle n’est pas détectée automatiquement. Il peut être nécessaire d’ajouter un appel sleep supplémentaire de quelques secondes pour s’assurer qu’il y a suffisamment de temps pour envoyer toutes les données. Utilisez l’exemple d’utilisation at_exit du code ci-dessous si nécessaire.

Assistant Monitor and stop

L’assistant Appsignal.monitor_and_stop est déprécié au profit de l’option enable_at_exit_hook, qui garantit que Appsignal.stop est appelé lorsque le processus se termine, et non chaque fois que l’assistant Appsignal.monitor_and_stop est appelé. Son utilisation est décrite dans la section ci-dessus.N’utilisez cet assistant que dans les versions de la gem Ruby qui ne prennent pas en charge l’option enable_at_exit_hook.
Si votre processus exécute toujours une seule tâche/un seul job et se termine immédiatement après, vous pouvez utiliser l’assistant Appsignal.monitor_and_stop. Cela garantira qu’AppSignal s’arrête automatiquement après l’exécution du bloc.