New Relic pour Node.js instrumente automatiquement la plupart requests Web standard, mais parfois vous souhaitez instrumentation étendue. Avec l'API d'instrumentation personnalisée de l'agent, vous pouvez créer une instrumentation pour des frameworks Web, des magasins de données et des clients de services de messagerie qui ne sont pas pris en charge.
L'API d'instrumentation personnalisée de l'agent Node.js vous permet également de :
- Créer un Web de transaction (utile pour des éléments tels que les sockets Web, où les transactions ne peuvent pas être créées automatiquement).
- Créez des transactions d’arrière-plan non Web (utiles pour enregistrer des tâches en arrière-plan).
- Ciblez des sections spécifiques de votre code pour une analyse plus approfondie.
Exigences relatives à la version de l'agent
Les instrumentation méthodes personnalisées de ce document sont disponibles à partir de la version 2.0.0 de l'agent Node.js Pour plus d'informations sur l'instrumentation à l'aide de l'API d'instrumentation personnalisée v1.x, consultez la documentation de l'instrumentation personnalisée Node.js héritée.
Instrumenter non pris en charge framework web
À partir de la version 2.0.0 de l'agent Node.js, New Relic fournit une API pour étendre instrumentation pour un framework Web supplémentaire. Pour plus d'informations, consultez l'exemple d'application sur GitHub.
Clients de service de messagerie non pris en charge par l'instrument
À partir de la version 2.0.0 de l'agent Node.js, New Relic fournit une API pour étendre instrumentation d'une bibliothèque de services de messages supplémentaire. Pour plus d'informations, consultez l'exemple d'application sur GitHub.
Magasins de données non pris en charge par l'instrument
À partir de la version 2.0.0 de l'agent Node.js, New Relic fournit une API pour étendre instrumentation pour une bibliothèque de datastore supplémentaire. Pour plus d'informations, consultez l'exemple d'application sur GitHub.
Instrumenter des transaction web
Afin de créer une transaction Web personnalisée, appelez startWebTransaction
pour démarrer la transaction. Pour plus d'informations, consultez l'exemple d'application sur GitHub.
L'exemple d'application lié fournit uniquement des données de synchronisation de base pour la transaction créée. Pour créer des données de synchronisation et des noms de transaction plus complexes pour un framework particulier, consultez la documentation de l'API Node.js et l'exemple d'application WebFramework associé sur GitHub.
Opérations de fond sur l'instrument
Vous pouvez utiliser des transactions personnalisées pour instrumenter des transactions non Web (tâches en arrière-plan) ; par exemple :
- Tâches périodiques au sein de votre application
- Travail qui continue après la fin d'une demande
Pour instrumenter les tâches en arrière-plan, appelez startBackgroundTransaction
dans votre gestionnaire pour démarrer une transaction en arrière-plan. Pour plus d'informations, consultez l'exemple d'application sur GitHub.
Développer l'instrumentation au sein des transactions
Vous pouvez créer une instrumentation à l’aide des méthodes d’enregistrement d’instrumentation sur l’API. L'écriture d'instrumentation à l'aide de l'API d'instrumentation vous permet de spécifier les métriques et les noms de manière plus détaillée grâce à des méthodes de « monkey patching » (remplacement des fonctions) sur les objets pertinents. D'autres options peuvent offrir une visibilité sur les transactions Web déjà instrumentées, ou obtenir des informations détaillées sur la base de données et d'autres travaux en cours de transaction qui ne sont pas automatiquement instrumentés.
Pour cela, enroulez votre rappel dans du traceur personnalisé. Le traceur personnalisé crée et collecte des métriques spécifiques pour un segment supplémentaire au sein d'une transaction existante, comme une fonction particulière ou un appel de base de données. Pour plus d'informations, consultez l'exemple d'application sur GitHub.