Lorsque AppSignal reçoit des données de votre application, les traces/transactions sont regroupées selon la combinaison de leur espace de noms et de leur nom d’action.
Par défaut, ces noms d’actions sont automatiquement déterminés en fonction de votre framework (par exemple, Controller#action_name, BackgroundWorker#perform, etc.).
Lorsque le nom d’action déterminé automatiquement n’est pas suffisant, vous pouvez le personnaliser.
Ce guide explique comment personnaliser les noms d’actions dans différentes intégrations de langages.
Les noms d’actions ne sont pas censés être uniques !
N’utilisez pas de variables pour personnaliser les noms d’actions, car cela créera un nouvel incident à chaque occurrence.
Cela rend la vue d’ensemble des incidents difficile à utiliser et empêche un regroupement adéquat ainsi qu’une analyse des tendances.Utilisez toujours des chaînes statiques pour les noms d’actions. N’interpolez jamais de variables, d’entrées utilisateur ou de données dynamiques dans les noms d’actions.
Pourquoi personnaliser les noms d’actions ?
- Clarté améliorée : fournissez des noms plus descriptifs pour des opérations complexes.
- Regroupement personnalisé : contrôlez la façon dont les données de l’application sont organisées dans AppSignal.
Lorsque les noms d’actions automatiques sont insuffisants
Voici quelques exemples où les noms d’actions générés automatiquement peuvent être insuffisants :
- Routes fourre-tout : dans les applications qui utilisent des routes fourre-tout ou un routage dynamique (comme
/api/:entity/:action), le nom d’action par défaut peut être quelque chose de générique comme ApiController#dispatch.
- Tâches polyvalentes : les workers d’arrière-plan et les scripts qui gèrent différents types de travail en fonction de paramètres seraient tous regroupés sous le même nom d’action (par exemple,
GenericWorker#perform).
- Resolvers GraphQL : ceux-ci peuvent tous être regroupés sous un seul nom d’action (par exemple,
POST /graphql) bien qu’ils gèrent de nombreux types d’opérations différents.
Personnalisation des actions par langage
Ruby
Dans les applications Ruby, vous pouvez utiliser l’assistant Appsignal.set_action pour personnaliser le nom de l’action :
Pour les jobs en arrière-plan, les tâches et les scripts, vous pouvez définir le nom de l’action de la même manière avec l’assistant Appsignal.set_action.
Il est également possible de configurer le nom de l’action lors de la création d’une transaction à l’aide de l’assistant Appsignal.monitor. Il accepte le nom de l’action comme argument nommé.
Elixir
Dans les applications Elixir, vous pouvez utiliser la fonction Appsignal.Span.set_name/2 pour personnaliser le nom de l’action sur le span racine :
Pour les jobs en arrière-plan, les tâches et les scripts, vous pouvez définir le nom de l’action de la même manière avec la fonction Appsignal.Span.set_name/2.
Node.js
Dans les applications Node.js, vous pouvez utiliser l’assistant setRootName du package AppSignal pour personnaliser les noms d’actions :
Pour les jobs en arrière-plan, les tâches et les scripts, vous pouvez définir le nom de l’action de la même manière avec l’assistant setRootName.
Python
Dans les applications Python, vous pouvez utiliser l’assistant set_root_name du package AppSignal pour personnaliser les noms d’actions :
Pour les jobs en arrière-plan, les tâches et les scripts, vous pouvez définir le nom de l’action de la même manière avec l’assistant set_root_name.
JavaScript front-end
Dans les applications JavaScript front-end, vous pouvez utiliser l’assistant setAction du package AppSignal pour personnaliser les noms d’actions :
Vous pouvez également mettre à jour le nom d’action d’un span existant :
Dans les applications Go, AppSignal fonctionne avec OpenTelemetry, qui utilise des spans pour suivre les métadonnées, comme le nom de l’action. Sur n’importe quel span de la trace, définissez un attribut appsignal.action_name avec une valeur de type String pour personnaliser le nom de l’action :
Pour les jobs en arrière-plan, les tâches et les scripts, vous pouvez définir le nom de l’action de la même manière en définissant l’attribut appsignal.action_name sur le span actif.
Java
Dans les applications Java, AppSignal fonctionne avec OpenTelemetry, qui utilise des spans pour suivre les métadonnées, comme le nom de l’action. Sur n’importe quel span de la trace, définissez un attribut appsignal.action_name avec une valeur de type String pour personnaliser le nom de l’action :
Pour les jobs en arrière-plan, les tâches et les scripts, vous pouvez définir le nom de l’action de la même manière en définissant l’attribut appsignal.action_name sur le span actif.
PHP
Dans les applications PHP, vous pouvez utiliser la méthode d’assistance Appsignal::setAction() du package AppSignal pour personnaliser les noms d’actions :
Pour les jobs en arrière-plan, les tâches et les scripts, vous pouvez définir le nom de l’action de la même manière en définissant l’attribut appsignal.action_name sur le span actif.
Bonnes pratiques
Lors de la personnalisation des noms d’actions, suivez ces recommandations :
- Soyez cohérent : utilisez un schéma de nommage cohérent dans toute votre application.
- Soyez précis : incluez des informations pertinentes qui aident à identifier l’opération.
- Évitez une cardinalité élevée : n’incluez pas d’identifiants ou de valeurs uniques qui créeraient des noms d’actions uniques à chaque exécution.
- Utilisez des chaînes statiques : n’interpolez jamais de variables ou de données dynamiques dans les noms d’actions.
- Suivez le nommage du code : utilisez des schémas de nommage comme
Controller#action qui correspondent à la structure de votre application afin que l’emplacement dans le code puisse être retrouvé.
- Utilisez plutôt des tags ou des métadonnées : pour suivre des informations variables comme les fournisseurs de paiement ou les types d’utilisateurs, utilisez les tags et les métadonnées plutôt que de les intégrer dans les noms d’actions.
Au lieu de créer des noms d’actions dynamiques, utilisez une combinaison de :
- Noms d’actions statiques : utilisez des noms d’actions descriptifs mais statiques.
- Tags : ajoutez des tags avec les informations variables (par exemple,
provider: stripe, operation_type: refund).
- Attributs personnalisés : ajoutez des métadonnées supplémentaires à la trace/transaction.
Exemple :
Cette approche vous permet de :
- Regrouper les opérations associées sous un même nom d’action.
- Filtrer et rechercher en fonction des tags.
- Maintenir une vue d’ensemble des incidents propre.
Déployer
Après avoir mis en place des noms d’actions personnalisés, déployez votre application. Les nouvelles traces/transactions utiliseront vos noms d’actions personnalisés dans les tableaux de bord AppSignal.
Les données historiques utiliseront toujours les noms d’actions d’origine. Seules les actions nouvellement rapportées utiliseront les noms personnalisés que vous avez définis.
Vos noms d’actions personnalisés n’apparaissent pas correctement ? N’hésitez pas à contacter notre équipe d’assistance pour obtenir de l’aide !
Pour aller plus loin