メモ
Pythonエージェントの今回のリリースでは、設定ファイルでのPython Lambda関数のサポートを削除し、デフォルトでnewrelicヘッダーを除外し、Hybridエージェントトレースの除外および包含設定、anthropicの計装、geminiのレスポンスストリーミングのサポートを追加し、パフォーマンス向上のためにgc_data.pyでのIS_PYPYのキャッシュを改善し、トランザクションイベントにhttp.statusCode属性を追加します。このリリースではまた、再接続時にモジュールを再送信して確実に記録されるようにし、ガベージコレクションのメトリクスをリエントラント呼び出しから保護し、非同期ジェネレーターでのタスク伝搬、およびStreamingResponseでのstarletteのコンテキスト伝搬を修正します。
Python パッケージ インデックス経由でeasy_install/pip/distributeを使用するか、 Conda-Forge パッケージ インデックス経由でcondaを使用してエージェントをインストールするか、 New Relic ダウンロード サイトから直接ダウンロードします。
削除された機能
設定ファイル内のPython Lambda関数のサポートを削除
- 以前は、エージェントでPythonのLambda関数を指定して、トランザクション、バックグラウンドタスク、データベーストレース、プロファイルトレース、外部トレースのURLとメソッド、関数トレース、ジェネレータートレース、およびmemcacheトレースに動的に名前を付けることができました。この機能のサポートにより、エージェントにセキュリティの脆弱性が生じるため、この機能は削除されます。
廃止予定
WebTransactionsのresponse.status属性は非推奨とみなされており、今後の14.0.0リリースで削除される予定です。http.statusCodeに置き換えられます。response.statusへのすべての参照をhttp.statusCodeに置き換えることを推奨します。
新機能
デフォルトで
newrelicヘッダーを除外するnewrelicのディストリビューティッド(分散)トレーシングヘッダーは、デフォルトでは送信されなくなりました。W3Cのtraceparentおよびtracestateヘッダーのみが送信されます。
Hybrid エージェントのトレースの除外および包含設定を追加する
opentelemetry.traces.include設定ファイル用、または環境変数として使用するNEW_RELIC_OPENTELEMETRY_TRACES_INCLUDEopentelemetry.traces.exclude設定ファイル用、または環境変数として使用するNEW_RELIC_OPENTELEMETRY_TRACES_EXCLUDE
ハイブリッドエージェントのデフォルトの動作も異なります。現在、OpenTelemetryでサポートされているが、New Relicではまだサポートされていないライブラリとトレーサーのみが、OpenTelemetryの計装を利用します。そうでない場合、エージェントはデフォルトでNew Relicの計装フックを使用します。
これらの設定の詳細については、Pythonエージェント設定ページおよびOpenTelemetry APIサポートページを参照してください。
Anthropicストリーミング計装を追加
- anthropicの計装サポートを追加します。
パフォーマンス向上のため、gc_data.pyにおけるIS_PYPYのキャッシュを改善
モジュールがロードされたときに IS_PYPY を1回チェックしてキャッシュするようになりました。
Geminiレスポンスストリーミングの追加
- google-genai パッケージを通じて、Gemini にレスポンス ストリーミング サポートを追加します。
トランザクションイベントに
http.statusCode属性を追加する- 他の言語エージェントに合わせるため、Pythonエージェントはhttpステータスを
WebTransaction属性http.statusCodeに送信するようになりました。Pythonエージェントは引き続きresponse.statusにも属性を送信しますが、response.status属性は将来的に削除されます。
- 他の言語エージェントに合わせるため、Pythonエージェントはhttpステータスを
バグ
再接続中にモジュールを再送信する
- エージェントは以前、最初の接続サイクル後にのみ定期的にモジュールリストを送信していました。エージェントがコレクターに再接続した場合、このデータは再送信されないため、UIにはモジュールデータが表示されなくなります。これは修正されました。
ガベージコレクションのメトリクスをリエントラント呼び出しから保護する
- Python 3.13以降での無限再帰を防ぐため、
_GCDataSource.record_gc()への再入呼び出しを防止するフラグを追加します。
- Python 3.13以降での無限再帰を防ぐため、
非同期ジェネレーターでのタスク伝播を有効にする
- 複数のタスクにまたがる場合に
AsyncGeneratorProxyがトランザクションコンテキスト伝搬を適切に処理しない問題を修正します。
- 複数のタスクにまたがる場合に
Starletteのコンテキスト伝搬を修正:
StreamingResponse- 同期および非同期ジェネレーターの両方に対して、starlette
StreamingResponseにトレースコンテキスト伝搬を追加します。
- 同期および非同期ジェネレーターの両方に対して、starlette
サポートステートメント
最新のエージェント バージョンが利用可能になったらすぐに更新することをお勧めします。最新バージョンにアップグレードできない場合は、エージェントを 90 日以内のバージョンに更新してください。エージェントを最新の状態に保つ方法の詳細については、こちらをご覧ください。
エージェントのリリースとサポート日については、New Relic Python エージェントのEOL ポリシーを参照してください。