注意
既知の問題: このリリースには、Netty Reactor の特定の使用法でメモリ リークを引き起こす可能性がある既知の問題があります。別のバージョンの使用を検討してください。
新機能と改善点
- Reactor
Mono.flatMap呼び出し2308の可視性が向上します - コア Kafka クライアント ライブラリ2312を使用する場合に Spring-Kafka とディストリビューティッド(分散)トレーシング用の新しい計装を追加します
- Kafka 3.7+ 2358の
KafkaConsumerConfigイベント サポートを追加します
修正
distributed_tracing.sampler構成2330を修正しましたScala 2.12 および JDK 11 の使用時に発生する可能性のある不正アクセス エラーを修正しました。Scala 2.12 がエージェントによって検出できない場合 (システム クラスローダーをチェックします - 特に、sbt は Scala クラスをカスタム Scala ローダーにロードします)、システム プロパティ
-Dnewrelic.config.class_transformer.illegal_access_fix=true2334を介して修正を手動で有効にする機能フラグもあります。nettyの「不明」トランザクション2274 2355を修正
- この修正により、以前の netty 計装の変更が機能フラグの背後に移動され、HTTP2 トランザクションに関連する一部のケースで追加の可視性が提供されます。 この粒度を再度有効にするには (「不明」なトランザクションが表示される可能性があります)、次の構成設定を使用します。
netty:http2:frame_read_listener:start_transaction: true- 8.20 にはエージェント構成のロジック エラーがあるため、修正はエージェント バージョン 8.21 以降でのみ公式になります。
SQS メッセージのディストリビューティッド(分散)トレーシング ヘッダーを追加するタイミングに関する制限を追加します。 これは、メッセージの内容のバイト数と属性のサイズに基づいています。・2353 サイズが 251 KB を超えるメッセージ、および/または 9 以上のプロパティを持つメッセージは、ディストリビューティッド(分散)トレーシング ヘッダーの追加の取得から除外されます。
顧客環境との競合を防ぐために、
org.cracJAR をシャドウイングできるようにします。2344PR #1927 で行われた変更をバックポートして、
NullPointerExceptionsがvertx-core計装2327の古いバージョンに渡されるのを防ぎます。HttpUrlConnectionメソッド呼び出しによって過剰なトランザクションセグメントが作成されるのを防ぎます (例:getInputStream) は、外部呼び出しに関連付けられていない場合に使用されます。この動作は、次の構成オプションによって制御できます:NEW_RELIC_CLASS_TRANSFORMER_COM_NEWRELIC_INSTRUMENTATION_HTTPURLCONNECTION_VERBOSE=false、 sys prop-Dnewrelic.config.class_transformer.com.newrelic.instrumentation.httpurlconnection.verbose=false、またはnewrelic.yml内の同等のスタンザ。デフォルト設定はtrue(つまり非外部getInputStreamおよびその他のレスポンス ハンドラー メソッドは以前と同じように報告されます。2365
セキュリティ
- 無限トレース2339でセキュリティを強化するために
com.newrelic.agent.java:infinite-tracing-protobufをアップグレードします - セキュリティ上の脆弱性2333に対処するため、
snakeyamlcom.konloch:safeyamlに置き換えます
廃止予定
次の 計算モジュールは非推奨であり、次のメジャー リリースで削除されます。
aws-wrap-0.7.0java.completable-future-jdk8play-2.3netty-3.4Struts v1
IAST
CSEC バージョン 1.7.0 2348へのアップデート\ 変更ログ: https://github.com/newrelic/csec-java-agent/releases/tag/1.7.0
最新バージョンへのアップデート
現在使用中の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 では、最新の機能とパフォーマンス上のメリットを確実に得られるよう、エージェントを定期的にアップグレードすることをお勧めします。さらに、古いリリースはサポート終了になるとサポートされなくなります。