Voici quelques conseils de dépannage pour l'instrumentation personnalisée avec l'agent Java de New Relic.
Options UI
Vous pouvez utiliser l'UI de New Relic pour instrumentation définir des règles avec l'éditeur d'instrumentation personnalisée ou modifier votre fichier XML via le de votre application Java Settings.
Java apps only: Pour modifier votre fichier XML directement depuis l’UI de New Relic : accédez one.newrelic.com > All capabilities > APM & services > (select a Java app) > Settings > Live Instrumentation à. À partir d'ici vous pouvez :
- Téléchargez un exemple de fichier XML.
- Sélectionnez un fichier XML existant ou modifiez-le.
- Rechercher l'historique de l'instrumentation.
Transactions imbriquées dans le profileur de thread
L'instrumentation personnalisée est utile pour les transactions imbriquées. Dans le profileur de thread, les méthodes avec des icônes grises à côté d'elles ne peuvent pas être instrumentées car cela entraînerait une surcharge inacceptable. Cependant, les enfants de ces méthodes peuvent généralement être instrumentés.

one.newrelic.com > All capabilities > APM & services > (select an app) > Events > Thread profiler: Une icône grise signifie qu'elle ne peut pas être instrumentée. Une icône blanche signifie qu'il n'est pas instrumenté mais peut être instrumenté. Une icône bleue signifie qu'il est actuellement instrumenté.
Pour identifier les méthodes que vous pouvez instrument, développez l'arborescence du profil de thread jusqu'à ce que vous trouviez une méthode appropriée :
- Allez à one.newrelic.com > All capabilities > APM & services > (select an app) > Events > Thread profiler.
- Développez l’arborescence du profil de thread jusqu’à ce que vous trouviez une méthode appropriée.
- Suivez les procédures standard pour définir et déployer une instrumentation personnalisée.
Classes et méthodes
Lors du dépannage instrumentation personnalisée pour votre agent Java, comparez les informations pointcut
dans votre fichier de configuration newrelic.yml
avec les messages de confirmation dans votre fichier de log. Vérifiez que les classes et les méthodes correspondent.
Voici un exemple :
# This is a pointcut example in your newrelic.yml config file:<pointcut transactionStartPoint="true"> <className>com.example.class.name</className> <method> <name>exampleMethod</name> </method></pointcut>
Si cela est correctement instrumenté, vous pouvez voir un message similaire à celui-ci dans le fichier de log:
# This is a confirmation example in your log file:Oct 1, 2015 10:58:52 -0700 [9805 1] com.newrelic FINER: Instrumenting com/example/class/name
Si la classe et la méthode du fichier de log ne correspondent pas aux valeurs personnalisées de votre instrumentation, vérifiez-les et ajustez-les si nécessaire. (Vous ne verrez peut-être pas toujours une confirmation dans votre fichier log indiquant si le chargement instrumentation personnalisée a réussi ou échoué.)
Transaction séparée en XML
Voici un exemple de pointcut avec plusieurs valeurs method
. Le nameTransaction
a été ajouté au XML pour décomposer la méthode en une transaction distincte plutôt qu'en un segment dans la table de répartition APMTransactions .
# This is a pointcut example to identify a specific transaction with XML custom instrumentation:<pointcut> <nameTransaction/> <className>com.examplename.client.actionflow.impl.exampleActionFlow</className> <method> <name>requestNAME</name> <parameters> <type>boolean</type> </parameters> </method></pointcut>
transactions asynchrones
Si votre application utilise des processus asynchrones, il peut être possible de connecter l'activité de travail asynchrone à la transaction parent à l'aide de l'API Java. Par défaut, ces transactions ne sont pas liées. Pour plus d’informations, voir Instrumentation asynchrone Java.