New features and improvements
- Removed linking metadata blob
@NewFieldsfrom log4j-2.11 module 2917 - Added support for cluster mode in the
lettuce-6.0andlettuce-6.5modules 2922 - Added new instrumentation modules for Vert.x web and core 5.x 2920
- Added new Java Server Faces instrumentation modules to replace legacy point cuts 2944
- Added a new Portlet module to replace legacy point cuts 2953
- Migrated shadow plugin from
com.github.johnrengelmantocom.gradleup2945 - Added weave class instrumentation replacement for
HandlerMethodInvoker3PointCutpoint cut 2967 - Removed
@NewFieldannotations from thejdbc-genericmodule 2963 - Removed HandlerMethodInvokerPointCut point cut 2977
- Removed SpringPointCut point cut 2990
- Added new
http.request.methodattribute to all external HTTP spans 29853010 - Added support for decorating JFR data with APM labels (as configured in the java agent) 3007
- [Hybrid Agent] Decorated OpenTelemetry dimensional metrics with
otlp_resource_attributesfrom connect response 2956
Fixes
- Fixed MDC leak issue in the
apache-log4j-2.11 module2926 - Removed
java.rminamespaced exceptions 2932 - Used Jakarta servlet exception attribute in the
wildfly-27module 2929 - Serverless mode now sent payload to the console if file pipe wasn't written 2975
- Changed
ForceRestartExceptionlog toINFO2989 - Added a new build time
Patcherinstance to remove problem enum values from the shadowed jspecify library@NullMarkedclass 2982 - Cleaned up segment instances for Netty Reactor HTTP calls 3004
- Fixed transaction linking metadata during some async operations 3006
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.
新機能と改善点
デフォルトのyamlにlog_level_denylist設定を追加 2830
Solr 9 JMXモジュール 2821
LLMレスポンスからトークン数を取得するための新しい一元化されたトークンカウント戦略。2837
JDBCバッチ操作のキャプチャのサポート;具体的にはaddBatch()およびexecuteBatch()メソッド。2840
レガシーポイントカットを置き換えるXML RPC計装モジュール 2841
新しいJFR固有の設定
jfr.use_display_nameを追加します。trueに設定した場合、エージェントはJFRホスト名をprocess_host.display_name設定の値に設定します。従来の動作を維持するため、デフォルトは false です。
jfr.use_display_name が true でも、display_name 設定が空の場合、JfrService はホスト名の古い動作にフォールバックします。
common: &default_settings jfr: use_display_name: truejava.xmlrpc モジュールでの不要なセグメント作成を削除 2853
各モデルの新しいトークンカウント戦略を使用して、aws-bedrock-runtime-2.20モジュールを更新します。2845
新しいライセンスキー難読化アルゴリズム 2864
Micronaut Http Clients バージョン3.5.0+のサポート2834
Kafka Clients 4.0.0以降のサポート 2896
内部依存関係のLog4j Coreを2.17.1から2.25.4にアップグレード 2833
2.0.0~最新までのAWS DAXサポート 2873
バージョン1.0.0以降のSpring AI completionおよびembeddingクライアント用の計装を追加します。これにより、新しい計装モジュールが追加されます:
spring-ai-client-chat-1.0.0spring-ai-model-1.0.0コアトレース - SpanEventsのドロップとドロップされたSpanLinksのリペアレント 2881
ポイントカットの置換
MicronautのBlockingHttpClientをサポート 2860
AIモデル Context Protocol 1.0.0から最新版までのサポートを追加。2880
修正
コルーチン計装を修正。修正には以下が含まれます:
- 実行が別のスレッドにジャンプする可能性がある箇所で見つかったギャップがインストゥルメントされたことで、非同期動作の追跡が改善されました。
- Coroutinesおよびコンティニュエーションの命名の改善。既存の命名は一般的すぎました。新しい命名では、runBlocking、async、withContext、またはリリースのいずれを介して開始されたかに応じて識別します。
- 使用されなくなった一部のユーティリティメソッドを削除しました 2802
Micronautがインストゥルメントされた際に、有効期限が切れていない非同期トークンの数が過剰になる問題を修正しました。2792
Mule 4.9 IllegalAccessErrorの解決 2859
Core Tracingのインストゥルメントされたメトリクスと保持されたメトリクスについて、元々時間メトリクスとして記録されていた記録の誤りを修正しました。2881
最新バージョンへのアップデート
現在使用中の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 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 では、最新の機能とパフォーマンス上のメリットを確実に得られるよう、エージェントを定期的にアップグレードすることをお勧めします。さらに、古いリリースはサポート終了になるとサポートされなくなります。
Fixes
- Fixes Kotlin Coroutine error about third party implementation of
CancellableContinuation
Deprecations
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.