メモ
Pythonエージェントの今回のリリースでは、複数の新しいRedisコマンドのサポートを追加し、LangGraph計装のバグを修正し、ハーベスト制限設定の処理とロギングを改善しています。
Python パッケージ インデックス経由でeasy_install/pip/distributeを使用するか、 Conda-Forge パッケージ インデックス経由でcondaを使用してエージェントをインストールするか、 New Relic ダウンロード サイトから直接ダウンロードします。
改善された機能
新しいRedis v8.8.0コマンドの計装を追加
redis-py v8.8.0 の 以下の新しいRedisコマンド の計装を追加:
- その他のコマンド:INCREX、XNACK
- 配列コマンド:ARCOUNT、ARDEL、ARDELRANGE、ARGET、ARGETRANGE、ARGREP、ARINFO、ARINSERT、ARLASTITEMS、ARLEN、ARMGET、ARMSET、ARNEXT、AROP、ARRING、ARSCAN、ARSEEK、ARSET
バグ
LangGraph計装でのクラッシュを修正
- 以前は、LangGraphの計装を使用すると、AsyncBackgroundExecutor内のジョブへのコンテキスト伝搬の問題により、エージェントがクラッシュしていました。この問題は修正され、エージェントはLangGraphで正常に動作するはずです。
ハーベスト制限設定の処理とロギングを改善
- エージェントは、New Relic OneのEnvironmentタブにハーベストメソッドと制限のリストをより正確に報告するようになりました。
- エージェントの起動時におけるハーベスト制限設定のデバッグログが、より一貫性を持つようになりました。
サポートステートメント
最新のエージェント バージョンが利用可能になったらすぐに更新することをお勧めします。最新バージョンにアップグレードできない場合は、エージェントを 90 日以内のバージョンに更新してください。エージェントを最新の状態に保つ方法の詳細については、こちらをご覧ください。
エージェントのリリースとサポート日については、New Relic Python エージェントのEOL ポリシーを参照してください。
メモ
Pythonエージェントのこのリリースでは、LangChainおよびLangGraphにおけるコンテキスト伝搬の問題、OpenAIのチャット補完の記録に関する問題、およびLiteLLMをプロキシとして介してOpenAI(https://pypi.org/project/openai)ストリーミングを使用する際の問題が修正されています。
Python パッケージ インデックス経由でeasy_install/pip/distributeを使用するか、 Conda-Forge パッケージ インデックス経由でcondaを使用してエージェントをインストールするか、 New Relic ダウンロード サイトから直接ダウンロードします。
バグ
LangChainおよびLangGraphにおけるコンテキスト伝搬を修正
OpenAIチャットコンプリーションの記録に関する問題を修正
- OpenAI は、消費者がすべてのデータを読み取っていなくてもストリーミングレスポンスを閉じるロジックを再導入しました。以前は、チャットコンプリーションデータはストリームの終端に達したときにのみ記録されていたため、ストリームのクローズ時にチャットコンプリーションデータが記録されない結果となっていました。ストリームが完全に読み取られていない場合でも、チャット完了データをキャプチャするロジックが追加されました。
プロキシとしてLiteLLMを経由してOpenAIストリーミングを使用する際の問題を修正
サポートステートメント
最新のエージェント バージョンが利用可能になったらすぐに更新することをお勧めします。最新バージョンにアップグレードできない場合は、エージェントを 90 日以内のバージョンに更新してください。エージェントを最新の状態に保つ方法の詳細については、こちらをご覧ください。
エージェントのリリースとサポート日については、New Relic Python エージェントのEOL ポリシーを参照してください。
メモ
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 ポリシーを参照してください。
メモ
今回の Python エージェントのリリースでは、最初のトークンまでの時間のサポートが追加され、互換性のないFlask add_url_rule関数のシグネチャが修正されました。
Python パッケージ インデックス経由でeasy_install/pip/distributeを使用するか、 Conda-Forge パッケージ インデックス経由でcondaを使用してエージェントをインストールするか、 New Relic ダウンロード サイトから直接ダウンロードします。
新機能
LLMレスポンスストリームの最初のトークンに時間を追加しました。
バグ修正
Flask
add_url_rule関数のシグネチャの不一致が解決されました- Flaskの計装を更新し、
add_url_rule関数のシグネチャをネイティブのFlask実装に合わせました。 この修正により、以前の署名不一致によって発生する可能性のあるアプリケーションのクラッシュを防ぎます。
- Flaskの計装を更新し、
サポートステートメント
最新のエージェント バージョンが利用可能になったらすぐに更新することをお勧めします。最新バージョンにアップグレードできない場合は、エージェントを 90 日以内のバージョンに更新してください。エージェントを最新の状態に保つ方法の詳細については、こちらをご覧ください。
エージェントのリリースとサポート日については、New Relic Python エージェントのEOL ポリシーを参照してください。
メモ
Pythonエージェントのこのリリースでは、クロスアプリケーション トレーシング (CAT)、 Python 3.8、およびバンドルされている SSL 証明書のサポートが削除されます。 また、ベンダー提供のすべてのパッケージを最新バージョンに更新し、フリースレッド対応のCPython、 Windows OSのサポートを追加し、Microsoft AG2(Autogen)の計測機能を改善します。 さらに、このリリースには、certifi を通じて SSL 証明書をインストールするための新しいオプションの追加機能が含まれています。 このリリースでは、重複した例外が報告される原因となった Strands エージェントインストゥルメンテーションのバグも修正されています。
Python パッケージ インデックス経由でeasy_install/pip/distributeを使用するか、 Conda-Forge パッケージ インデックス経由でcondaを使用してエージェントをインストールするか、 New Relic ダウンロード サイトから直接ダウンロードします。
削除された機能
クロスアプリケーション トレーシング (CAT) は削除され、ディストリビューティッド(分散)トレーシング (DT) が使用されます。
- クロスアプリケーショントレーシング(CAT)は、エージェントバージョン7.0.0.166で非推奨となり、今回のリリースで削除されました。まだクロスアプリケーション トレーシング (CAT) を使用している場合は、中断を避けるためにできるだけ早くディストリビューティッド(分散)トレーシング (DT) に移行することをお勧めします。
同梱されていたSSL証明書は削除されました。
- 環境に証明書が必要な場合は、OS のパッケージマネージャを介して証明書をインストールするか、オプションの
newrelic[certificates]エクストラを使用してエージェントをインストールできます。
- 環境に証明書が必要な場合は、OS のパッケージマネージャを介して証明書をインストールするか、オプションの
Python 3.8のサポートは削除されました。
- Python 3.8は2024年10月7日にサポート終了となり、エージェントによるサポートは終了しました。Pythonエージェントの更新を引き続き受け取るには、アプリケーションをサポートされているバージョンのPythonにアップグレードすることを検討してください。
セキュリティ
すべての内部パッケージが最新バージョンにアップデートされました。
urllib3バージョン2.6.3にアップデートしました- このリリースにより、
urllib3における、このリリース日時点での未解決のすべての CVE が修正されます。
- このリリースにより、
opentelemetry_protoバージョン1.40.0にアップデートしましたwraptバージョン2.1.2にアップデートしましたasgirefバージョン3.11.1にアップデートしました。
新機能
certifiを通じて SSL 証明書をインストールするための新しい
newrelic[certificates]追加機能。- エージェントは、バンドルされているSSL証明書をインストールするために使用できるオプションの追加機能
newrelic[certificates]を提供するようになりました。これは、証明書が必要だが、OS のパッケージマネージャから証明書をインストールできないユーザーを対象としています。
- エージェントは、バンドルされているSSL証明書をインストールするために使用できるオプションの追加機能
フリースレッドCPythonのサポート
- Python 3.13以降、CPythonはグローバルインタプリタロック(GIL)を無効にしたPythonビルドをリリースし、真のマルチスレッド処理を可能にしました。
- 今回のリリースでは、この動作に対するサポートが追加され、エージェントがフリースレッド環境で安全に実行できるようになります。
- このリリースには、Linux およびWindows上のフリースレッド CPython 用のビルド済みバイナリも含まれており、これらの環境で簡単にインストレーションを行うことができます。
Windowsサポート
- このリリースには、Windows 上の CPython 3.13 以降に対応したビルド済みバイナリが含まれています。
- タイマーの解像度に大きなばらつきがあるため、Python 3.12以前のバージョンはWindowsでは公式にはサポートされていませんのでご注意ください。エージェントをソースからインストールして使用することは引き続き可能ですが、ユーザーは不正確なタイミング データに関する問題が発生する可能性があるため、最高のエクスペリエンスを得るにはPython 3.13 以降にアップグレードする必要があります。
Microsoft AG2 (Autogen)用の計装の改善
- 非同期ジェネレータメソッド
on_messages_stream()によるストリーミング応答のサポートを追加しました。 - 計装には、ツールまたはエージェントの呼び出しを表すスパンの
subcomponentプロパティが含まれるようになりました。 これは、New RelicのUIにおいて、より高度なエンティティマッピングを提供するために使用されます。
- 非同期ジェネレータメソッド
バグ
Strandsエージェントでの重複例外
- Strandsエージェントのアップデートにより、一部の例外が新しい
EventLoopException型にカプセル化された後、重複したエラーが報告される可能性がありました。 この問題は修正され、根本的なエラーは一度だけ報告されるはずです。
- Strandsエージェントのアップデートにより、一部の例外が新しい
サポートステートメント
最新のエージェント バージョンが利用可能になったらすぐに更新することをお勧めします。最新バージョンにアップグレードできない場合は、エージェントを 90 日以内のバージョンに更新してください。エージェントを最新の状態に保つ方法の詳細については、こちらをご覧ください。
エージェントのリリースとサポート日については、New Relic Python エージェントのEOL ポリシーを参照してください。
Notes
This release of the Python agent adds trace/span support for Hybrid Agent, New Relic's integration with OpenTelemetry. It also adds entity GUIDs to Agent Control health check files, subcomponent attributes to agentic AI instrumentation, support for new Redis client methods, fixes a bug where there may be duplicate ImportHookFinder instances and a bug in OracleDB Cursor.callproc() instrumentation.
Install the agent using easy_install/pip/distribute via the Python Package Index, using conda via the Conda-Forge Package Index, or download it directly from the New Relic download site.
Features
Add Hybrid Agent tracing support
- Hybrid Agent is designed to bridge the gap for teams looking to adopt OpenTelemetry standards while maintaining backwards compatibility with their existing New Relic dashboards. Hybrid Agent offers a "best-of-both-worlds" experience by combining New Relic’s deep visibility with OpenTelemetry API compatibility. It provides an observability solution with integrated support for the following OpenTelemetry APIs:
- Tracing
- Standalone library and native framework instrumentation
- Key enhancements like Span Links and Events on Spans are now available, ensuring seamless interoperability in mixed-mode environments.
- Hybrid Agent is designed to bridge the gap for teams looking to adopt OpenTelemetry standards while maintaining backwards compatibility with their existing New Relic dashboards. Hybrid Agent offers a "best-of-both-worlds" experience by combining New Relic’s deep visibility with OpenTelemetry API compatibility. It provides an observability solution with integrated support for the following OpenTelemetry APIs:
Introduces a new Trace ID Ratio based sampler
- A new Trace ID Ratio based sampler. This sampling algorithm is based off the sampler of the same name from OpenTelemetry, and can be configured to sample a set percentage of transactions.
Add
subcomponentattributes to agentic AI instrumentationAdd entity GUID to Agent Control health check files
- When the agent is started within an Agent Control environment, a health check file is created at the configured file location for every agent process. This file now includes the GUID of the entity related to the agent when available.
Add instrumentation for new Redis methods
- Add instrumentation for the following methods new methods on Redis clients:
- hotkeys_get
- hotkeys_reset
- hotkeys_start
- hotkeys_stop
- vrange
- xcfgset
- Add instrumentation for the following methods new methods on Redis clients:
Bugs
Fix duplicate ImportHookFinder instances
- Previously it was possible for duplicates of the import hook finder to be added to
sys.meta_path.
- Previously it was possible for duplicates of the import hook finder to be added to
Fix incorrect signature on OracleDB
Cursor.callproc()- Previously attempting to use keyword arguments with
Cursor.callproc()would cause crashes as the argument names were incorrect in our instrumentation. This has been fixed, and the additional argumentkeyword_parametersis now also supported.
- Previously attempting to use keyword arguments with
Support statement
We recommend updating to the latest agent version as soon as it's available. If you can't upgrade to the latest version, update your agents to a version no more than 90 days old. Read more about keeping agents up to date.
See the New Relic Python agent EOL policy for information about agent releases and support dates.