L'agent .NET de New Relic fournit plusieurs options pour l'instrumentation personnalisée. instrumentation personnalisée vous permet d'instrumenter des parties de votre application qui ne sont pas instrumentées automatiquement. Ce document décrit comment instrumenter votre application en décorant les méthodes de votre code d'application avec un attribut.
- Utilisez l’attribut
Transaction
pour créer une transaction personnalisée. Vous pouvez également marquer la transaction personnalisée comme une transaction Web avec la propriétéWeb
de l'attribut. - Utilisez l’attribut
Trace
pour ajouter une instrumentation personnalisée aux méthodes appelées dans une transaction préexistante.
Exigences et recommandations
Les exigences comprennent :
- Agent .NET version 6.16.178.0 ou supérieure.
- Vous devez être prêt à modifier votre code source. Si vous ne pouvez pas ou ne voulez pas modifier votre code source, utilisez une instrumentation personnalisée via XML.
- Votre projet doit avoir une référence à
NewRelic.Api.Agent.dll
(par exemple, en installant le package et en plaçantusing NewRelic.Api.Agent;
dans votre code). Ce package se trouve dans la galerie NuGet. - Les attributs
Transaction
etTrace
doivent être appliqués aux implémentations concrètes des méthodes. Ils ne peuvent pas être appliqués aux interfaces ou aux définitions de méthodes de super-classe. - Évitez les méthodes de niveau supérieur instrumentées telles que
Main()
, car ces méthodes ne se terminent pas tant que l'application n'est pas terminée, ce qui peut empêcher l'envoi de données à New Relic.
Transactions appelées dans les transactions
Les méthodes décorées avec l'attribut [Transaction]
ne créeront une nouvelle transaction que si elle n'existe pas déjà. Lorsqu'une méthode décorée avec [Transaction]
est appelée à partir de within une transaction précédemment démarrée, elle sera traitée comme l'attribut [Trace]
et fournira plus d'informations sur la transaction existante.
Créer une nouvelle transaction non Web
Pour démarrer une transaction non Web (également appelée demande d'arrière-plan) avec l'attribut Transaction
:
[Transaction]public void Run(){ // your background task}
Pour plus de détails sur les raisons pour lesquelles utiliser Web ou non-Web, voir Classer comme Web ou non-Web.
Créer un nouveau site Web de transaction
Pour indiquer à l'agent de marquer une tâche non Web comme une transaction de navigateur Web, utilisez l'une de ces options :
- Définissez la propriété
Web
de l’attributTransaction
surtrue
. - Définissez l'URI de la transaction avec
SetTransactionUri()
.
[Transaction(Web = true)]public void Run(){ var uri = new Uri("https://www.mydomain.com/path"); NewRelic.Api.Agent.NewRelic.SetTransactionUri(uri);
// your web task}
Lorsqu'il est utilisé dans une transaction précédemment démarrée, il sera traité comme un attribut [Trace]
.
Pour plus de détails sur les raisons pour lesquelles utiliser Web ou non-Web, voir Classer comme Web ou non-Web.
Ajoutez des détails aux transactions existantes avec Trace
Si votre trace de transaction montre de grands blocs de temps non instrumentés et que vous souhaitez inclure des méthodes supplémentaires dans la trace, vous pouvez utiliser l'attribut Trace
:
[Trace]protected void MethodWithinTransaction(){ // your app code}
Important
Si certaines de vos méthodes n'apparaissent pas dans la trace après l'ajout de l'attribut [Trace]
, désactivez l'intégration de méthode pour ces méthodes avec [MethodImpl(MethodImplOptions.NoInlining)]
.
Important
L’exécution de votre application à partir de Visual Studio en mode debug peut empêcher certaines méthodes d’apparaître dans la trace New Relic . Pour garantir que les méthodes apparaissent dans New Relic, exécutez l'application en mode sortie via la ligne de commande.
Propriétés pour Transaction
L'attribut Transaction
prend en charge les propriétés suivantes :
Exemple : instrumenter quatre méthodes
Lire les messages du forum sur l'instrumentation
Pour des recommandations plus spécifiques, consultez ces publications dans notre communauté du forum d'assistance :
- Résoudre les problèmes instrumentation personnalisée basée sur les attributs
- Construire des usines de traceur personnalisées instrumentation à partir d'agent .NET fichier de log
Utiliser d’autres fonctions API
Pour en savoir plus sur l'API d'agent .NET et ses fonctionnalités, consultez le guide d'API d'agent .NET de New Relic. Pour une instrumentation personnalisée sans modifier votre code source, consultez Créer des transactions via XML et Ajouter des détails aux transactions via XML.