Notes
This release of the Python agent adds additional model information to LangChain Chain LLM events, and fixes a bug in LangGraph streaming 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.
Improved Features
Add additional model information to LangChain Chain LLM events
- Add
request.modelandresponse.modelattributes to LLM events produced by LangChain Chains. - This information is pulled on a best effort basis and may not always be available.
- Add
Bugs
Fix TypeError in LangGraph streaming instrumentation
- Previously, when using a subset of streaming APIs in LangGraph, the agent would encounter a
TypeErrordue to the use ofweakref.WeakMethodby LangGraph. This has been fixed, and the agent should now work correctly with those LangGraph streaming methods.
- Previously, when using a subset of streaming APIs in LangGraph, the agent would encounter a
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.
Notes
This release of the Python agent adds support for multiple new Redis commands, fixes a bug in LangGraph instrumentation, and improves handling and logging of harvest limit settings.
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.
Improved Features
Add instrumentation for new Redis v8.8.0 commands
- Add instrumentation for the following new Redis commands from redis-py v8.8.0:
- Misc commands: INCREX, XNACK
- Array commands: ARCOUNT, ARDEL, ARDELRANGE, ARGET, ARGETRANGE, ARGREP, ARINFO, ARINSERT, ARLASTITEMS, ARLEN, ARMGET, ARMSET, ARNEXT, AROP, ARRING, ARSCAN, ARSEEK, ARSET
- Add instrumentation for the following new Redis commands from redis-py v8.8.0:
Bugs
Fix crash in LangGraph instrumentation
- Previously, when using LangGraph instrumentation, the agent would crash due to an issue with context propagation to jobs in AsyncBackgroundExecutor. This has been fixed, and the agent should now work correctly with LangGraph.
Improved handling and logging of harvest limit settings
- The agent now more accurately reports the list of harvest methods and limits to the Environment tab in New Relic One.
- The agent now has more consistent debug logging on startup for harvest limit settings.
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.
メモ
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 ポリシーを参照してください。