New features and improvements
- Java 27 support 3095
- AI Monitoring - Support for AWS Converse APIs 2995 3003
- Support Quarkus: rest-3.0.0 3009
- Support Quarkus resteasy 2.14 3018
- Support Spring Boot Actuator v4 3040
- Support for Ktor Http Clients, Http Server and Utils (Pipelines) 2892 2894 2895
- Support for Redisson 3.28.0 and up 3050
- Adobe AEM (Sling) browser script injection modules 2863
- Oracle explain plan support 3080
Enhancements
- Add (limited) Hybrid Agent proxy support 3013
- Hybrid Agent - Logging - Allow empty message body when context attributes are present 3042
- Add hybrid audit logging 3059
- Enhance gRPC-Netty support 3063
- Enable Hybrid Agent OTLP metric retry logic 3084
- Add collector connection TTL and recovery tests 3081
- Make weave related task thread count configurable 3103
- Report Cluster Ids in Kafka Metrics 3054
Fixes
- Properly handle exceptions thrown from the normalizer flow 3037
- Resolve Micronaut duplicate transactions/lost custom attributes issues 3085
IAST
- Bump CSEC agent version to v1.8.0 3065 Changelog: https://github.com/newrelic/csec-java-agent/releases#release-1.8.0
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.
新機能と改善点
- log4j-2.11モジュールからリンクメタデータblob
@NewFieldsを削除しました 2917 lettuce-6.0およびlettuce-6.5モジュールでのクラスタモードのサポートを追加しました 2922- Vert.x用の新しい計装モジュールを追加しましたwebおよびcore 5.x 2920
- レガシーポイントカットを置き換える新しいJava Server Faces計装モジュールを追加しました 2944
- レガシーポイントカットを置き換える新しいPortletモジュールを追加しました 2953
- shadowプラグインを
com.github.johnrengelmanからcom.gradleupに移行しました 2945 HandlerMethodInvoker3PointCutポイントカットのweaveクラス計装の代替を追加しました 2967jdbc-genericモジュールから@NewFieldアノテーションを削除しました 2963- HandlerMethodInvokerPointCutポイントカットを削除しました 2977
- SpringPointCutポイントカットを削除しました 2990
- すべての外部HTTPスパンに新しい
http.request.method属性を追加しました 2985 3010 - (Javaエージェントでの設定に従って)APMラベルでJFRデータを装飾するサポートを追加しました 3007
- [Hybridエージェント]接続応答からの
otlp_resource_attributesでOpenTelemetryのディメンショナルメトリクスを装飾しました 2956
修正
apache-log4j-2.11 moduleのMDCリークの問題を修正しました 2926java.rmi名前空間の例外を削除しました 2932wildfly-27モジュールでJakartaサーブレット例外属性を使用しました 2929- ファイルパイプが書き込まれなかった場合、Serverlessモードでペイロードがコンソールに送信されるようになりました 2975
ForceRestartExceptionのログをINFOに変更しました 2989- シャドウ化されたjspecifyライブラリの
@NullMarkedクラスから問題のあるenum値を削除するために、新しいビルド時のPatcherインスタンスを追加しました 2982 - Netty ReactorのHTTP呼び出しのセグメントインスタンスをクリーンアップしました 3004
- 一部の非同期操作中のトランザクションリンクメタデータを修正しました 3006
最新バージョンへのアップデート
現在使用中の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 では、最新の機能とパフォーマンス上のメリットを確実に得られるよう、エージェントを定期的にアップグレードすることをお勧めします。さらに、古いリリースはサポート終了になるとサポートされなくなります。
新機能と改善点
デフォルトの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 では、最新の機能とパフォーマンス上のメリットを確実に得られるよう、エージェントを定期的にアップグレードすることをお勧めします。さらに、古いリリースはサポート終了になるとサポートされなくなります。
New features and improvements
- Add config to delete stale agent temp jars on startup by @jtduffy in 2676
- Add "inclusion" option to compliment the exclude configuration for selectively instrumenting applications @jtduffy in 2638
- To use this feature, set the environment variable
NEW_RELIC_STARTUP_JAVA_ARTIFACT_INCLUDESor system propertynewrelic.config.startup_java_artifact_includes. Specify the artifacts that should be instrumented as a comma-separated list.
- To use this feature, set the environment variable
Fixes
- Resolve IllegalAccessError by moving wrapper class out of S3AsyncClient_Instrumentation by @jtduffy in 2503
- Fix mislabeled instrumentation version on log events in logback-classic-1.5.20 by @jasonjkeller in 2594
- Fixed logging message for max attribute value by @jeffalder in 2680
- Corrected Trace Ratio sampler priorities by @jtduffy in 2583
Removals
- Removes deprecated jdbc-inet-* modules by @obenkenobi in 2572
- Removes deprecated java.completable-future-jdk8 instrumentation by @obenkenobi in 2562
- Removes aws wrap instrumentation by @obenkenobi in 2567
- Removes jdbc-sybase-6 module by @obenkenobi in 2614
- Removes play 2.3 instrumentation by @obenkenobi in 2568
- Removes deprecated thrift-0.8 module by @obenkenobi in 2569
- Removes deprecated solr 4.0 & 5.0 modules by @obenkenobi in 2570
- Removes deprecated module grails-1.3 by @obenkenobi in 2573
- Removes deprecated module hibernate-3.3 by @obenkenobi in 2574
- Removes deprecated footer injection API by @sharvath-newrelic in 2620
- Removes deprecated Struts 1 pointcuts by @obenkenobi in 2561
- Removes deprecated module glassfish-3 by @sharvath-newrelic in 2575
- Removes deprecated rabbit-amqp modules 2.5.0, 2.4.1, 1.7.2 by @obenkenobi in 2571
- Removes deployment marker function by @jtduffy in 2589
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.