Span, nous fournissons plusieurs occasions de mettre à jour ou modifier son état interne. Les hooks sont le mécanisme prévu à cet effet. À l’aide de fonctions ayant une forme spécifique, nous pouvons enrichir tout Span sortant avec des informations supplémentaires avant qu’il soit envoyé à l’Push API.
Les deux types de hooks sont un tableau de fonctions composées qui sont appliquées de droite à gauche. Autrement dit, les hooks ajoutés en dernier sont toujours les premiers à être appliqués.
Lorsqu’un Span est passé à appsignal.send(), ou qu’une Error est passée à appsignal.sendError(), les hooks sont appliqués au Span dans l’ordre suivant :
- Décorateurs
- Arguments optionnels
tagsounamespacedeappsignal.send() - Surcharges
Décorateurs
Il peut être nécessaire d’ajouter du contexte supplémentaire à unSpan au niveau global, afin que toutes les requêtes incluent par défaut ces informations. Les décorateurs peuvent être utilisés pour cela.
Surcharges
Les surcharges sont la dernière opportunité possible de mettre à jour les données dans unSpan avant qu’il soit envoyé à l’Push API. Par exemple, vous pouvez choisir de nettoyer toutes les données utilisateur des Spans dans une surcharge.
Écrire votre propre Hook
Les hooks sont, essentiellement, des fonctions qui prennent unSpan comme unique argument, puis renvoient le même Span. Pendant l’exécution de la fonction, des modifications peuvent être apportées au Span, mais nous suggérons de n’introduire aucun autre effet de bord.
Voici un exemple de la façon dont vous pouvez ajouter un Hook à l’objet Appsignal :
npm, par exemple, nous vous recommandons d’utiliser l’interface de plugin pour l’enregistrer.