New features and improvements
Add log_level_denylist config to default yaml 2830
Solr 9 JMX module 2821
New centralized token counting strategy for capturing token counts from LLM Responses. 2837
Support for capturing JDBC batch operations; specifically the addBatch() and executeBatch() methods. 2840
XML RPC instrumentation module to replace legacy point cut 2841
Add a new JFR specific config
jfr.use_display_name. If set to true, the agent will set the JFR host name to the value in theprocess_host.display_nameconfiguration. The default is false to preserve old behavior.
If jfr.use_display_name is true but the display_name config is empty, the JfrService will fallback to the old behavior for the host name.
common: &default_settings jfr: use_display_name: true- Remove unneeded segment creation in java.xmlrpc module 2853
- Update aws-bedrock-runtime-2.20 Module with a new token counting strategy for each of the models. 2845
New license key obfuscation algorithm 2864
Support for Micronaut Http Clients versions 3.5.0+ 2834
Support for Kafka Clients 4.0.0 and up 2896
Internal dependency Log4j Core Upgrade from 2.17.1 to 2.25.4 2833
AWS DAX Support starting from 2.0.0 to latest 2873
- Add instrumentation for Spring AI completion and embedding clients for versions 1.0.0 and up. This adds new instrumentation modules:
spring-ai-client-chat-1.0.0spring-ai-model-1.0.0Core Tracing - Drop SpanEvents and Re-Parent dropped SpanLinks 2881
Pointcut replacements
Support Micronaut’s BlockingHttpClient 2860
- Add support for AI Model Context Protocol 1.0.0 to latest. 2880
Fixes
Fix coroutines instrumentation. Fixes include:
- Better tracking of asynchronous behavior by instrumenting gaps that were found where execution can jump to another thread.
- Better naming on Coroutines and Continuations. Existing naming was too generic. New naming identifies according to whether it is started via runBlocking, async, withContext or launch.
- Removed some utility methods that were no longer used 2802
Fixes excessive number of unexpired async tokens when instrumenting Micronaut. 2792
Resolution of Mule 4.9 IllegalAccessError 2859
Fix a mis-recording of the Instrumented and Kept metrics for Core Tracing, as they were originally being recorded as a time metric. 2881
Update to latest version
To identify which version of the Java agent you're currently using, run java -jar newrelic.jar -v. Your Java agent version will be printed to your console.
Then, to update to the latest Java agent version:
- Back up the entire Java agent root directory to another location. Rename that directory to
NewRelic_Agent#.#.#, where#.#.#is the agent version number. - Download the agent..
- Unzip the new agent download file, then copy
newrelic-api.jarandnewrelic.jarinto the original Java agent root directory. - Compare your old
newrelic.ymlwith the newly downloadednewrelic.ymlfrom the zip, and update the file if needed. - Restart your Java dispatcher.
If you experience issues after the Java agent update, restore from the backed-up New Relic agent directory.
Update agent config differences
We add new settings to newrelic.yml as we release new versions of the agent. You can use diff or another diffing utility to see what's changed, and add the new config settings to your old file. Make sure not to overwrite any customizations you've made to the file, such as your license key, app name, or changes to default settings.
For example, if you diff the default newrelic.yml files for Java agent versions 7.10.0 and 7.11.0, the results printed to the console will be like:
➜ diff newrelic_7.10.0.yml newrelic_7.11.0.yml...107a108,119> # Whether the log events should include context from loggers with support for that.> context_data:>> # When true, application logs will contain context data.> enabled: false>> # A comma separated list of attribute keys whose values should be sent to New Relic.> #include:>> # A comma separated list of attribute keys whose values should not be sent to New Relic.> #exclude:>125a138>128c141< enabled: false---> enabled: true...In this example, these lines were added to the default newrelic.yml in Java agent version 7.11.0. If you're moving to 7.11.0 or higher, you should add these new lines to your original newrelic.yml.
Support statement:
- New Relic recommends that you upgrade the agent regularly to ensure that you're getting the latest features and performance benefits. Additionally, older releases will no longer be supported when they reach end-of-life.
Nouvelle fonctionnalité et améliorations
- Ajoute la prise en charge de Java 26 2734
- Ajoute le mode Serverless pour le monitoring AWS Lambda avec l’agent Java 2609 2615 2625 2633 2640 2641 2647 2673 2716 2721 2735 2723 2740 2769 2782 2794 2797 2796 2806
- Ajoute une nouvelle configuration
application_logging.forwarding.log_level_denylist2764 - Implémente les URI d'ingestion d'événements/métriques sensibles à la région 2749 2790
- Ajoute la prise en charge de l'association des logs à l'entité correspondante lorsque
enable_auto_app_namingesttrue2627 - Ajouter l'instrumentation
opentelemetry-sdk-extension-autoconfigure-1.59.0pour OpenTelemetry 1.59.0+ 2786 - Ajoute la prise en charge de l'association de l'échantillonneur adaptatif à l'entité correspondante lorsque
enable_auto_app_namingesttrue2805 - Ajoute des métriques de supportabilité pour chaque entité créée lorsque
enable_auto_app_namingesttrue2808 - Implémente la configuration du proxy de contournement des métadonnées cloud 2791
- Ajoute la prise en charge de plusieurs versions de Caffeine dans l'agent 2807
- Ajoute la prise en charge des plans d’exécution qui utilisent des éventails SQL 2815
- Ajoute une « Queue » générique comme type de transport 2820
- Ajoute la prise en charge des appels du client Http Reactor Netty 2817
Corrections
- Corrige un cas limite où des charges mal formées provoquaient une NPE lors de l'accès au champ
sampledsur la charge NR 2762 - Expire les jetons lorsqu'un abonnement réactif est annulé 2798
- Ajoute une logique pour retirer manuellement tout thread mort du cache
TheadTrackerafin d'éviter une fuite de mémoire 2811 - Résout un interblocage entre le thread de collecte et le thread d'arrêt de la JVM 2539
Mise à jour vers la dernière version
Pour identifier la version de l’agent Java que vous utilisez actuellement, exécutez java -jar newrelic.jar -v. Votre version d'agent Java sera imprimée sur votre console.
Ensuite, pour mettre à jour vers la dernière version de l'agent Java :
- Sauvegardez l’ intégralité du répertoire racine de l’agent Java vers un autre emplacement. Renommez ce répertoire en
NewRelic_Agent#.#.#, où#.#.#est le numéro de version de l'agent. - Téléchargez l'agent..
- Décompressez le nouveau fichier de téléchargement de l'agent, puis copiez
newrelic-api.jaretnewrelic.jardans le répertoire racine de l'agent Java d'origine. - Comparez votre ancien
newrelic.ymlavec lenewrelic.ymlnouvellement téléchargé à partir du zip et mettez à jour le fichier si nécessaire. - Redémarrez votre répartiteur Java.
Si vous rencontrez des problèmes après la mise à jour de l'agent Java, effectuez la restauration à partir du répertoire de l'agent New Relic sauvegardé.
Différences de configuration de l'agent de mise à jour
Nous ajoutons de nouveaux paramètres à newrelic.yml à mesure que nous sortons de nouvelles versions de l'agent. Vous pouvez utiliser diff ou un autre utilitaire de comparaison pour voir ce qui a changé et ajouter les nouveaux paramètres de configuration à votre ancien fichier. Assurez-vous de ne pas écraser les personnalisations que vous avez apportées au fichier, telles que votre clé de licence, le nom de l'application ou les modifications apportées aux paramètres par défaut.
Par exemple, si vous diff les fichiers par défaut newrelic.yml pour les versions 7.10.0 et 7.11.0 de l'agent Java, les résultats imprimés sur la console seront comme suit :
➜ diff newrelic_7.10.0.yml newrelic_7.11.0.yml...107a108,119> # Whether the log events should include context from loggers with support for that.> context_data:>> # When true, application logs will contain context data.> enabled: false>> # A comma separated list of attribute keys whose values should be sent to New Relic.> #include:>> # A comma separated list of attribute keys whose values should not be sent to New Relic.> #exclude:>125a138>128c141< enabled: false---> enabled: true...Dans cet exemple, ces lignes ont été ajoutées à la valeur par défaut newrelic.yml dans la version 7.11.0 de l'agent Java. Si vous passez à la version 7.11.0 ou supérieure, vous devez ajouter ces nouvelles lignes à votre newrelic.yml d'origine.
Déclaration de soutien :
- New Relic vous recommande de mettre à niveau l'agent régulièrement pour vous assurer de bénéficier des dernières fonctionnalités et avantages en termes de performances. De plus, les anciennes sorties ne seront plus prises en charge lorsqu'elles atteindront leur fin de vie.
Nouvelle fonctionnalité et améliorations
- L'agent Java hybride : offrant une expérience « le meilleur des deux mondes » en combinant la visibilité approfondie de New Relic avec la compatibilité de l'API OpenTelemetry. Cette version inclut une prise en charge complète des API de tracing, de métriques et de logs OpenTelemetry, ainsi que l'instrumentation de bibliothèques autonomes et de frameworks natifs. Des améliorations clés telles que Span Links et Events on Spans sont désormais disponibles, garantissant une interopérabilité transparente dans les environnements en mode mixte.
- Prise en charge de l'API OpenTelemetry pour l'agent hybride par @jasonjkeller dans 2711
- Améliorations des exclusions de coroutines par @dhilpipre dans 2726
- Ajout de l'action de métadonnées de l'agent - @mvicknr dans 2732 2745
Corrections
- Correction de la propagation de trace défectueuse avec les en-têtes W3C par @jasonjkeller dans 2299
- Correction de la configuration de préférence multihôte @jtduffy dans 2720
- Correction d'un problème où suspend ignores n'était pas lu, par @dhilpipre dans 2663
Mise à jour vers la dernière version
Pour identifier la version de l’agent Java que vous utilisez actuellement, exécutez java -jar newrelic.jar -v. Votre version d'agent Java sera imprimée sur votre console.
Ensuite, pour mettre à jour vers la dernière version de l'agent Java :
- Sauvegardez l’ intégralité du répertoire racine de l’agent Java vers un autre emplacement. Renommez ce répertoire en
NewRelic_Agent#.#.#, où#.#.#est le numéro de version de l'agent. - Téléchargez l'agent..
- Décompressez le nouveau fichier de téléchargement de l'agent, puis copiez
newrelic-api.jaretnewrelic.jardans le répertoire racine de l'agent Java d'origine. - Comparez votre ancien
newrelic.ymlavec lenewrelic.ymlnouvellement téléchargé à partir du zip et mettez à jour le fichier si nécessaire. - Redémarrez votre répartiteur Java.
Si vous rencontrez des problèmes après la mise à jour de l'agent Java, effectuez la restauration à partir du répertoire de l'agent New Relic sauvegardé.
Différences de configuration de l'agent de mise à jour
Nous ajoutons de nouveaux paramètres à newrelic.yml à mesure que nous sortons de nouvelles versions de l'agent. Vous pouvez utiliser diff ou un autre utilitaire de comparaison pour voir ce qui a changé et ajouter les nouveaux paramètres de configuration à votre ancien fichier. Assurez-vous de ne pas écraser les personnalisations que vous avez apportées au fichier, telles que votre clé de licence, le nom de l'application ou les modifications apportées aux paramètres par défaut.
Par exemple, si vous diff les fichiers par défaut newrelic.yml pour les versions 7.10.0 et 7.11.0 de l'agent Java, les résultats imprimés sur la console seront comme suit :
➜ diff newrelic_7.10.0.yml newrelic_7.11.0.yml...107a108,119> # Whether the log events should include context from loggers with support for that.> context_data:>> # When true, application logs will contain context data.> enabled: false>> # A comma separated list of attribute keys whose values should be sent to New Relic.> #include:>> # A comma separated list of attribute keys whose values should not be sent to New Relic.> #exclude:>125a138>128c141< enabled: false---> enabled: true...Dans cet exemple, ces lignes ont été ajoutées à la valeur par défaut newrelic.yml dans la version 7.11.0 de l'agent Java. Si vous passez à la version 7.11.0 ou supérieure, vous devez ajouter ces nouvelles lignes à votre newrelic.yml d'origine.
Déclaration de soutien :
- New Relic vous recommande de mettre à niveau l'agent régulièrement pour vous assurer de bénéficier des dernières fonctionnalités et avantages en termes de performances. De plus, les anciennes sorties ne seront plus prises en charge lorsqu'elles atteindront leur fin de vie.
Nouvelle fonctionnalité et améliorations
- Ajouter la configuration pour supprimer les fichiers jar temporaires de l'agent obsolètes au démarrage par @jtduffy dans 2676
- Ajoutez l'option "inclusion" pour compléter la configuration d'exclusion pour l'instrumentation sélective des applications @jtduffy dans 2638
- Pour utiliser cette fonctionnalité, définissez la variable d'environnement
NEW_RELIC_STARTUP_JAVA_ARTIFACT_INCLUDESou la propriété systèmenewrelic.config.startup_java_artifact_includes. Spécifiez les artefacts à instrumenter sous forme de liste séparée par des virgules.
- Pour utiliser cette fonctionnalité, définissez la variable d'environnement
Corrections
- Résoudre IllegalAccessError en déplaçant la classe wrapper hors de S3AsyncClient_Instrumentation par @jtduffy dans 2503
- Corrigez la version d'instrumentation mal étiquetée sur les événements de log dans logback-classic-1.5.20 par @jasonjkeller dans 2594
- Message de logging corrigé pour la valeur d'attribut maximale par @jeffalder dans 2680
- Priorités de l'échantillonneur Trace Ratio corrigées par @jtduffy dans 2583
Suppressions
- Supprime les modules jdbc-inet-* obsolètes par @obenkenobi dans 2572
- Supprime java.completable-future-jdk8 obsolète instrumentation par @obenkenobi dans 2562
- Supprime l'instrumentation aws wrap par @obenkenobi dans 2567
- Supprime le module jdbc-sybase-6 par @obenkenobi dans 2614
- Supprime l'instrumentation play 2.3 par @obenkenobi dans 2568
- Supprime le thrift-0.8 obsolète module par @obenkenobi dans 2569
- Supprime les modules solr 4.0 et 5.0 obsolètes par @obenkenobi dans 2570
- Supprime le module grails-1.3 obsolète par @obenkenobi dans 2573
- Supprime le module déprécié hibernate-3.3 par @obenkenobi dans 2574
- Supprime l'API d'injection de pied de page dépréciée par @sharvath-newrelic dans 2620
- Supprime les pointcuts Struts 1 dépréciés par @obenkenobi dans 2561
- Supprime le module glassfish-3 obsolète par @sharvath-newrelic dans 2575
- Supprime les modules rabbit-amqp obsolètes 2.5.0, 2.4.1, 1.7.2 par @obenkenobi dans 2571
- Supprime la fonction de marqueur de déploiement par @jtduffy dans 2589
Mise à jour vers la dernière version
Pour identifier la version de l’agent Java que vous utilisez actuellement, exécutez java -jar newrelic.jar -v. Votre version d'agent Java sera imprimée sur votre console.
Ensuite, pour mettre à jour vers la dernière version de l'agent Java :
- Sauvegardez l’ intégralité du répertoire racine de l’agent Java vers un autre emplacement. Renommez ce répertoire en
NewRelic_Agent#.#.#, où#.#.#est le numéro de version de l'agent. - Téléchargez l'agent..
- Décompressez le nouveau fichier de téléchargement de l'agent, puis copiez
newrelic-api.jaretnewrelic.jardans le répertoire racine de l'agent Java d'origine. - Comparez votre ancien
newrelic.ymlavec lenewrelic.ymlnouvellement téléchargé à partir du zip et mettez à jour le fichier si nécessaire. - Redémarrez votre répartiteur Java.
Si vous rencontrez des problèmes après la mise à jour de l'agent Java, effectuez la restauration à partir du répertoire de l'agent New Relic sauvegardé.
Différences de configuration de l'agent de mise à jour
Nous ajoutons de nouveaux paramètres à newrelic.yml à mesure que nous sortons de nouvelles versions de l'agent. Vous pouvez utiliser diff ou un autre utilitaire de comparaison pour voir ce qui a changé et ajouter les nouveaux paramètres de configuration à votre ancien fichier. Assurez-vous de ne pas écraser les personnalisations que vous avez apportées au fichier, telles que votre clé de licence, le nom de l'application ou les modifications apportées aux paramètres par défaut.
Par exemple, si vous diff les fichiers par défaut newrelic.yml pour les versions 7.10.0 et 7.11.0 de l'agent Java, les résultats imprimés sur la console seront comme suit :
➜ diff newrelic_7.10.0.yml newrelic_7.11.0.yml...107a108,119> # Whether the log events should include context from loggers with support for that.> context_data:>> # When true, application logs will contain context data.> enabled: false>> # A comma separated list of attribute keys whose values should be sent to New Relic.> #include:>> # A comma separated list of attribute keys whose values should not be sent to New Relic.> #exclude:>125a138>128c141< enabled: false---> enabled: true...Dans cet exemple, ces lignes ont été ajoutées à la valeur par défaut newrelic.yml dans la version 7.11.0 de l'agent Java. Si vous passez à la version 7.11.0 ou supérieure, vous devez ajouter ces nouvelles lignes à votre newrelic.yml d'origine.
Déclaration de soutien :
- New Relic vous recommande de mettre à niveau l'agent régulièrement pour vous assurer de bénéficier des dernières fonctionnalités et avantages en termes de performances. De plus, les anciennes sorties ne seront plus prises en charge lorsqu'elles atteindront leur fin de vie.
Corrections
- Corrige l'erreur de coroutine Kotlin concernant l'implémentation tierce de
CancellableContinuation
Dépréciations
aws-wrap-0.7.0java.completable-future-jdk8play-2.3netty-3.4Struts v1spring-3.0.0thrift-0.8solr-4.0.0solr-5.0.0jdbc-inet-merliajdbc-inet-oranxograils-1.3rabbit-amqp-1.7.2rabbit-amqp-2.4.1rabbit-amqp-2.5.0rabbit-amqp-2.7.0glassfish-3hibernate-3.3hibernate-3.5jdbc-jtds
Mise à jour vers la dernière version
Pour identifier la version de l’agent Java que vous utilisez actuellement, exécutez java -jar newrelic.jar -v. Votre version d'agent Java sera imprimée sur votre console.
Ensuite, pour mettre à jour vers la dernière version de l'agent Java :
- Sauvegardez l’ intégralité du répertoire racine de l’agent Java vers un autre emplacement. Renommez ce répertoire en
NewRelic_Agent#.#.#, où#.#.#est le numéro de version de l'agent. - Télécharger l'agent.
- Décompressez le nouveau fichier de téléchargement de l'agent, puis copiez
newrelic-api.jaretnewrelic.jardans le répertoire racine de l'agent Java d'origine. - Comparez votre ancien
newrelic.ymlavec lenewrelic.ymlnouvellement téléchargé à partir du zip et mettez à jour le fichier si nécessaire. - Redémarrez votre répartiteur Java.
Si vous rencontrez des problèmes après la mise à jour de l'agent Java, effectuez la restauration à partir du répertoire de l'agent New Relic sauvegardé.
Différences de configuration de l'agent de mise à jour
Nous ajoutons de nouveaux paramètres à newrelic.yml à mesure que nous sortons de nouvelles versions de l'agent. Vous pouvez utiliser diff ou un autre utilitaire de comparaison pour voir ce qui a changé et ajouter les nouveaux paramètres de configuration à votre ancien fichier. Assurez-vous de ne pas écraser les personnalisations que vous avez apportées au fichier, telles que votre clé de licence, le nom de l'application ou les modifications apportées aux paramètres par défaut.
Par exemple, si vous diff les fichiers par défaut newrelic.yml pour les versions 7.10.0 et 7.11.0 de l'agent Java, les résultats imprimés sur la console seront comme suit :
➜ diff newrelic_7.10.0.yml newrelic_7.11.0.yml...107a108,119> # Whether the log events should include context from loggers with support for that.> context_data:>> # When true, application logs will contain context data.> enabled: false>> # A comma separated list of attribute keys whose values should be sent to New Relic.> #include:>> # A comma separated list of attribute keys whose values should not be sent to New Relic.> #exclude:>125a138>128c141< enabled: false---> enabled: true...Dans cet exemple, ces lignes ont été ajoutées à la valeur par défaut newrelic.yml dans la version 7.11.0 de l'agent Java. Si vous passez à la version 7.11.0 ou supérieure, vous devez ajouter ces nouvelles lignes à votre newrelic.yml d'origine.
Déclaration de soutien :
- New Relic vous recommande de mettre à niveau l'agent régulièrement pour vous assurer de bénéficier des dernières fonctionnalités et avantages en termes de performances. De plus, les anciennes sorties ne seront plus prises en charge lorsqu'elles atteindront leur fin de vie.
New features and improvements
- Adds Java 25 Support by @deleonenriqueta in 2512
- Adds support for Logback-1.5.20 by @jtduffy in 2535
- Introduces a config option to disable the execution of the
callandexecSQL parser regular expressions by @jtduffy in 2490 - Adds support for Kotlin Coroutines v1.4+ by @dhilpipre in 2454
- Adds support for Kotlin Coroutines Suspend Functions generated outside of Kotlin Coroutines by @dhilpipre in 2456
- Introduces a preference config for multiple hosts during datastore detection by @jbedell-newrelic in 2508
- Adds a system property to configure the artifact skip function by @jtduffy in 2509
- Adds a configuration option allowing Spring Controller transactions to be named using the controller class name and method name by @sharvath-newrelic in 2532
- Implements SamplerConfig, centralizing all
distributed_tracing.samplerconfigs into theSamplerConfigby @jasonjkeller in 2529 - Updates
kafka-clients-spans-0.11.0.0producer instrumentation to use modern distributed tracing API’s with W3C Trace Context support by @sharvath-newrelic in 2516
Fixes
- Fixes parsing of error class names by @sharvath-newrelic in 2497
- Fixes a potential memory issue caused by excessively large stack traces in error logging by @jtduffy in 2498
- Clarify logging messages for invalid attributes on custom events and logging events by @sharvath-newrelic in 2501
Deprecations
The following instrumentation modules are deprecated and will be removed in the next major release.
aws-wrap-0.7.0java.completable-future-jdk8play-2.3netty-3.4Struts v1spring-3.0.0thrift-0.8solr-4.0.0solr-5.0.0jdbc-inet-merliajdbc-inet-oranxograils-1.3rabbit-amqp-1.7.2rabbit-amqp-2.4.1rabbit-amqp-2.5.0rabbit-amqp-2.7.0glassfish-3hibernate-3.3hibernate-3.5jdbc-jtds
Update to latest version
To identify which version of the Java agent you're currently using, run java -jar newrelic.jar -v. Your Java agent version will be printed to your console.
Then, to update to the latest Java agent version:
- Back up the entire Java agent root directory to another location. Rename that directory to
NewRelic_Agent#.#.#, where#.#.#is the agent version number. - Download the agent..
- Unzip the new agent download file, then copy
newrelic-api.jarandnewrelic.jarinto the original Java agent root directory. - Compare your old
newrelic.ymlwith the newly downloadednewrelic.ymlfrom the zip, and update the file if needed. - Restart your Java dispatcher.
If you experience issues after the Java agent update, restore from the backed-up New Relic agent directory.
Update agent config differences
We add new settings to newrelic.yml as we release new versions of the agent. You can use diff or another diffing utility to see what's changed, and add the new config settings to your old file. Make sure not to overwrite any customizations you've made to the file, such as your license key, app name, or changes to default settings.
For example, if you diff the default newrelic.yml files for Java agent versions 7.10.0 and 7.11.0, the results printed to the console will be like:
➜ diff newrelic_7.10.0.yml newrelic_7.11.0.yml...107a108,119> # Whether the log events should include context from loggers with support for that.> context_data:>> # When true, application logs will contain context data.> enabled: false>> # A comma separated list of attribute keys whose values should be sent to New Relic.> #include:>> # A comma separated list of attribute keys whose values should not be sent to New Relic.> #exclude:>125a138>128c141< enabled: false---> enabled: true...In this example, these lines were added to the default newrelic.yml in Java agent version 7.11.0. If you're moving to 7.11.0 or higher, you should add these new lines to your original newrelic.yml.
Support statement:
- New Relic recommends that you upgrade the agent regularly to ensure that you're getting the latest features and performance benefits. Additionally, older releases will no longer be supported when they reach end-of-life.