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.
新機能と改善点
- Java 26サポートを追加 2734
- Javaエージェントを使用したAWS Lambda監視にServerlessモードを追加 2609 2615 2625 2633 2640 2641 2647 2673 2716 2721 2735 2723 2740 2769 2782 2794 2797 2796 2806
- 新しい
application_logging.forwarding.log_level_denylist設定を追加 2764 - リージョン対応のイベント/メトリクス取り込みURIを実装 2749 2790
enable_auto_app_namingがtrueの場合に、ログを対応するエンティティに関連付けるサポートを追加します 2627- OpenTelemetry 1.59.0+用の
opentelemetry-sdk-extension-autoconfigure-1.59.0計装を追加2786 enable_auto_app_namingがtrueの場合に、適応型サンプラーを対応するエンティティに関連付けるサポートを追加しました 2805enable_auto_app_namingがtrueの場合に作成される各エンティティのサポートアビリティメトリクスを追加します 2808- Cloudメタデータバイパスプロキシ設定を実装 2791
- エージェントで複数バージョンのCaffeineのサポートを追加 2807
- SQL配列を利用する実行計画のサポートを追加 2815
- 汎用的な「Queue」をtransportタイプとして追加 2820
- Reactor Netty Httpクライアント呼び出しのサポートを追加 2817
修正
- NRペイロードの
sampledフィールドにアクセスする際に、不正な形式のペイロードによってNPEが発生するエッジケースを修正 2762 - Reactiveサブスクリプションがキャンセルされたときにトークンを失効させる 2798
- メモリリークを防ぐために、
TheadTrackerキャッシュからデッドスレッドを手動で削除するロジックを追加 2811 - ハーベストスレッドとJVMシャットダウンスレッド間のデッドロックを解決 2539
最新バージョンへのアップデート
現在使用中のJavaエージェントのバージョンを特定するには、java -jar newrelic.jar -vを実行します。Javaエージェントのバージョンがコンソールに出力されます。
次に、最新バージョンのJavaエージェントにアップデートするには、以下の手順に従います。
- すべてのJavaエージェントのルートディレクトリを別の場所にバックアップします。そのディレクトリの名前を
NewRelic_Agent#.#.#に変更します。ここで、#.#.#はエージェントのバージョン番号です。 - エージェントをダウンロードします。
- 新しいエージェントのダウンロードファイルを解凍し、
newrelic-api.jarとnewrelic.jarを元のJavaエージェントのルートディレクトリにコピーします。 - 古い
newrelic.ymlとzipからダウンロードした新しいnewrelic.ymlを比較し、必要に応じてファイルを更新します。 - Javaディスパッチャを再起動します。
Javaエージェントのアップデート後に問題が発生する場合は、バックアップしたNew Relicエージェントディレクトリから復元します。
エージェント設定の差分のアップデート
エージェントの新しいバージョンをリリースする際に、newrelic.ymlに新しい設定を追加します。diffまたは別の差分ユーティリティを使用して変更内容を確認してから、新しい設定を古いファイルに追加できます。ライセンスキー、アプリ名、デフォルト設定の変更など、ファイルに対して行ったカスタマイズを上書きしないようにしてください。
たとえば、 Javaバージョン 7.10.0 および 7.11.0 のデフォルトのnewrelic.ymlファイルをdiffすると、コンソールに表示される結果は次のようになります。
➜ 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...この例では、これらの行はJavaエージェント バージョン 7.11.0 のデフォルトのnewrelic.ymlに追加されました。 7.11.0 以降に移行する場合は、これらの新しい行を元のnewrelic.ymlに追加する必要があります。
サポートステートメント:
- New Relic では、最新の機能とパフォーマンス上のメリットを確実に得られるよう、エージェントを定期的にアップグレードすることをお勧めします。さらに、古いリリースはサポート終了になるとサポートされなくなります。
新機能と改善点
- Java ハイブリッド エージェント: New Relic の高度な可視性とOpenTelemetry API の互換性を組み合わせることで、「両方の長所を兼ね備えた」エクスペリエンスを提供します。このリリースには、 OpenTelemetry Tracing、メトリクス、ログ API に加え、スタンドアロン ライブラリとネイティブ フレームワーク計装の包括的なサポートが含まれています。 Span リンクや Span 上のイベントなどの主要な機能強化が利用できるようになり、混合モード環境でのシームレスな相互運用性が保証されます。
- ハイブリッドエージェント OpenTelemetry API サポート (@jasonjkeller による2711)
- 2726の @dhilpipre によるコルーチン無視の機能強化
- エージェントメタデータアクションを追加 - @mvicknr in 2732 2745
修正
- 2299で @jasonjkeller が W3C ヘッダーによる壊れたトレース伝播を修正しました
- 2720のマルチホスト設定 @jtduffy を修正
- 2663でサスペンド無視が @dhilpipre によって読み取られない問題を修正しました
最新バージョンへのアップデート
現在使用中のJavaエージェントのバージョンを特定するには、java -jar newrelic.jar -vを実行します。Javaエージェントのバージョンがコンソールに出力されます。
次に、最新バージョンのJavaエージェントにアップデートするには、以下の手順に従います。
- すべてのJavaエージェントのルートディレクトリを別の場所にバックアップします。そのディレクトリの名前を
NewRelic_Agent#.#.#に変更します。ここで、#.#.#はエージェントのバージョン番号です。 - エージェントをダウンロードします。
- 新しいエージェントのダウンロードファイルを解凍し、
newrelic-api.jarとnewrelic.jarを元のJavaエージェントのルートディレクトリにコピーします。 - 古い
newrelic.ymlとzipからダウンロードした新しいnewrelic.ymlを比較し、必要に応じてファイルを更新します。 - Javaディスパッチャを再起動します。
Javaエージェントのアップデート後に問題が発生する場合は、バックアップしたNew Relicエージェントディレクトリから復元します。
エージェント設定の差分のアップデート
エージェントの新しいバージョンをリリースする際に、newrelic.ymlに新しい設定を追加します。diffまたは別の差分ユーティリティを使用して変更内容を確認してから、新しい設定を古いファイルに追加できます。ライセンスキー、アプリ名、デフォルト設定の変更など、ファイルに対して行ったカスタマイズを上書きしないようにしてください。
たとえば、 Javaバージョン 7.10.0 および 7.11.0 のデフォルトのnewrelic.ymlファイルをdiffすると、コンソールに表示される結果は次のようになります。
➜ 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...この例では、これらの行はJavaエージェント バージョン 7.11.0 のデフォルトのnewrelic.ymlに追加されました。 7.11.0 以降に移行する場合は、これらの新しい行を元のnewrelic.ymlに追加する必要があります。
サポートステートメント:
- New Relic では、最新の機能とパフォーマンス上のメリットを確実に得られるよう、エージェントを定期的にアップグレードすることをお勧めします。さらに、古いリリースはサポート終了になるとサポートされなくなります。
新機能と改善点
- 起動時に古いエージェント一時 jar を削除する設定を @jtduffy が2676に追加
- 2638で選択的にインストゥルメントされたアプリケーション @jtduffy の除外設定を補完する「inclusion」オプションを追加しました。
- この機能を使用するには、環境変数
NEW_RELIC_STARTUP_JAVA_ARTIFACT_INCLUDESまたはシステム プロパティnewrelic.config.startup_java_artifact_includesを設定します。インストゥルメントされるアーティファクトをカンマ区切りのリストとして指定します。
- この機能を使用するには、環境変数
修正
- 2503で @jtduffy が S3AsyncClient_Instrumentation からラッパー クラスを移動して IllegalAccessError を解決しました。
- @jasonjkeller による logback-classic-1.5.20 のログイベントの誤ったラベルの計装バージョンを修正(2594)
- 2680で @jeffalder による最大属性値のログメッセージを修正しました
- 2583で @jtduffy によってトレース比サンプラーの優先順位が修正されました
撤去
- 2572で @obenkenobi によって非推奨の jdbc-inet-* モジュールが削除されました
- 非推奨の java.completable-future-jdk8 を削除します計装 by @obenkenobi in 2562
- 2567 年に @obenkenobi による AWS ラップ計装を削除
- 2614で @obenkenobi によって jdbc-sybase-6 モジュールが削除されました
- 2568 年に @obenkenobi による play 2.3 計装を削除
- 非推奨のthrift-0.8を削除します2569の@obenkenobiによるモジュール
- @obenkenobi によって2570で非推奨の Solr 4.0 および 5.0 モジュールが削除されました
- 非推奨モジュール grails-1.3 を削除します@obenkenobi による2573
- 非推奨モジュール hibernate-3.3 を削除します@obenkenobi による2574
- 2620 年に @sharvath-newrelic によって非推奨のフッター インジェクションAPIを削除
- @obenkenobi による2561の非推奨 Struts 1 ポイントカットを削除します
- 2575で@sharvath-newrelicによって非推奨のモジュールglassfish-3が削除されました
- @obenkenobi によって、 2571で非推奨の Rabbit-amqp モジュール 2.5.0、2.4.1、1.7.2 が削除されました。
- 2589年に@jtduffyによってデプロイメントマーカー機能が削除されました
最新バージョンへのアップデート
現在使用中のJavaエージェントのバージョンを特定するには、java -jar newrelic.jar -vを実行します。Javaエージェントのバージョンがコンソールに出力されます。
次に、最新バージョンのJavaエージェントにアップデートするには、以下の手順に従います。
- すべてのJavaエージェントのルートディレクトリを別の場所にバックアップします。そのディレクトリの名前を
NewRelic_Agent#.#.#に変更します。ここで、#.#.#はエージェントのバージョン番号です。 - エージェントをダウンロードします。
- 新しいエージェントのダウンロードファイルを解凍し、
newrelic-api.jarとnewrelic.jarを元のJavaエージェントのルートディレクトリにコピーします。 - 古い
newrelic.ymlとzipからダウンロードした新しいnewrelic.ymlを比較し、必要に応じてファイルを更新します。 - Javaディスパッチャを再起動します。
Javaエージェントのアップデート後に問題が発生する場合は、バックアップしたNew Relicエージェントディレクトリから復元します。
エージェント設定の差分のアップデート
エージェントの新しいバージョンをリリースする際に、newrelic.ymlに新しい設定を追加します。diffまたは別の差分ユーティリティを使用して変更内容を確認してから、新しい設定を古いファイルに追加できます。ライセンスキー、アプリ名、デフォルト設定の変更など、ファイルに対して行ったカスタマイズを上書きしないようにしてください。
たとえば、 Javaバージョン 7.10.0 および 7.11.0 のデフォルトのnewrelic.ymlファイルをdiffすると、コンソールに表示される結果は次のようになります。
➜ 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...この例では、これらの行はJavaエージェント バージョン 7.11.0 のデフォルトのnewrelic.ymlに追加されました。 7.11.0 以降に移行する場合は、これらの新しい行を元のnewrelic.ymlに追加する必要があります。
サポートステートメント:
- New Relic では、最新の機能とパフォーマンス上のメリットを確実に得られるよう、エージェントを定期的にアップグレードすることをお勧めします。さらに、古いリリースはサポート終了になるとサポートされなくなります。
修正
- サードパーティの実装に関するKotlinコルーチンエラーを修正
CancellableContinuation
廃止予定
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
最新バージョンへのアップデート
現在使用中のJavaエージェントのバージョンを特定するには、java -jar newrelic.jar -vを実行します。Javaエージェントのバージョンがコンソールに出力されます。
次に、最新バージョンのJavaエージェントにアップデートするには、以下の手順に従います。
- すべてのJavaエージェントのルートディレクトリを別の場所にバックアップします。そのディレクトリの名前を
NewRelic_Agent#.#.#に変更します。ここで、#.#.#はエージェントのバージョン番号です。 - エージェントをダウンロードします。
- 新しいエージェントのダウンロードファイルを解凍し、
newrelic-api.jarとnewrelic.jarを元のJavaエージェントのルートディレクトリにコピーします。 - 古い
newrelic.ymlとzipからダウンロードした新しいnewrelic.ymlを比較し、必要に応じてファイルを更新します。 - Javaディスパッチャを再起動します。
Javaエージェントのアップデート後に問題が発生する場合は、バックアップしたNew Relicエージェントディレクトリから復元します。
エージェント設定の差分のアップデート
エージェントの新しいバージョンをリリースする際に、newrelic.ymlに新しい設定を追加します。diffまたは別の差分ユーティリティを使用して変更内容を確認してから、新しい設定を古いファイルに追加できます。ライセンスキー、アプリ名、デフォルト設定の変更など、ファイルに対して行ったカスタマイズを上書きしないようにしてください。
たとえば、 Javaバージョン 7.10.0 および 7.11.0 のデフォルトのnewrelic.ymlファイルをdiffすると、コンソールに表示される結果は次のようになります。
➜ 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.> include_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...この例では、これらの行はJavaエージェント バージョン 7.11.0 のデフォルトのnewrelic.ymlに追加されました。 7.11.0 以降に移行する場合は、これらの新しい行を元のnewrelic.ymlに追加する必要があります。
サポートステートメント:
- New Relic では、最新の機能とパフォーマンス上のメリットを確実に得られるよう、エージェントを定期的にアップグレードすることをお勧めします。さらに、古いリリースはサポート終了になるとサポートされなくなります。
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.