メモ
Pythonエージェントのこのリリースでは、Azure CosmosDBのサポートを追加し、HTTPX2および新しいLangChain/LangGraphストリーミングイベントAPIの計装を追加し、新しいOpenTelemetryデータベースセマンティック規則のサポートを追加し、不完全なパッケージレポート、パッケージ検索のパフォーマンスの低下、MySQLデータベース名のレポートのバグを含むいくつかの問題を解決しています。
Python パッケージ インデックス経由でeasy_install/pip/distributeを使用するか、 Conda-Forge パッケージ インデックス経由でcondaを使用してエージェントをインストールするか、 New Relic ダウンロード サイトから直接ダウンロードします。
新機能
Azure CosmosDBのサポートを追加しました
- Pythonエージェントは、Azure Cosmos DBクライアント操作をインストゥルメントするようになり、
azure-cosmosSDKを通じて実行されるデータベース、コンテナ、およびユーザー操作のデータストアメトリクスとトレースをレポートします。
- Pythonエージェントは、Azure Cosmos DBクライアント操作をインストゥルメントするようになり、
HTTPX2のサポートを追加しました
LangChain/LangGraphストリーミングイベントの計装を追加しました
新しいOpenTelemetryデータベースセマンティック規則のサポートを追加しました
- PythonエージェントをOpenTelemetryと並行して実行する場合(ハイブリッドエージェントモード)、エージェントはレガシーおよび新しいOpenTelemetryデータベーススパン属性名(
db.name/db.namespace、db.statement/db.query.text、db.mongodb.collection/db.collection.name)の両方を読み取るようになったため、OpenTelemetry計装ライブラリが出力するセマンティック規則のバージョンに関係なく、データベーストレースが引き続き正しく機能します。
- PythonエージェントをOpenTelemetryと並行して実行する場合(ハイブリッドエージェントモード)、エージェントはレガシーおよび新しいOpenTelemetryデータベーススパン属性名(
バグ
New Relicへの不完全なパッケージレポートを修正しました
- 以前は、モジュールの検出に遅い収集サイクル中に割り当てられた固定時間枠よりも長くかかり、エージェントの再起動後にパッケージリストが更新されなかった場合、PythonエージェントはNew Relicにレポートされる環境データから一部のインストール済みパッケージを除外する可能性がありました。パッケージのキャプチャは速い収集サイクル中に実行されるようになり、エージェントのシャットダウン/再起動時に完全に再キャプチャされるため、レポートされるパッケージリストは完全になります。
パッケージバージョン検索のオーバーヘッドを削減しました
- 以前は、インストールされているパッケージのバージョンを検索する際、検索のたびにすべてのパッケージについてファイルシステムを再スキャンしていたため、エージェントの初期化時にインストールされているパッケージの数に比例してO(n^2)のタイムペナルティが発生していました。このオーバーヘッドを回避するため、
importlib.metadata.packages_distributions()の結果は最初の検索後にキャッシュされるようになりました。
- 以前は、インストールされているパッケージのバージョンを検索する際、検索のたびにすべてのパッケージについてファイルシステムを再スキャンしていたため、エージェントの初期化時にインストールされているパッケージの数に比例してO(n^2)のタイムペナルティが発生していました。このオーバーヘッドを回避するため、
指定されたアプリケーションを適切にパススルーするように
get_linking_metadataを修正しました- 以前は、
newrelic.agent.get_linking_metadata(application=...)を呼び出すとapplication引数が無視され、常にデフォルトのアプリケーションのリンクメタデータが返されていました。これは、複数のアプリケーションにレポートするプロセスに影響を与えていました。指定されたアプリケーションが正しくパススルーされるようになりました。 - 貢献してくださったckarnellに感謝します!
- 以前は、
databaseキーワード引数を使用した場合のMySQLデータベース名のレポートを修正しました- 以前は、mysql-connector-pythonの接続引数からデータベース名を解析する際、エージェントはレガシーな
dbキーワード引数のみをチェックしていたため、モダンなdatabaseキーワード引数を使用して行われた接続では、データストアメトリクスにデータベース名がレポートされませんでした。エージェントは最初にdatabaseをチェックし、dbにフォールバックするようになりました。
- 以前は、mysql-connector-pythonの接続引数からデータベース名を解析する際、エージェントはレガシーな
LangGraph v1.1+の
GraphOutput値にアクセスする際の警告を修正しました- 以前は、LangGraph v1.1+の計装は、非推奨のアイテムアクセス構文を使用して
GraphOutputの戻り値にアクセスしていたため、非推奨の警告がトリガーされていました。エージェントはGraphOutput.valueを直接読み取るようになりました。
- 以前は、LangGraph v1.1+の計装は、非推奨のアイテムアクセス構文を使用して
サポートステートメント
最新のエージェント バージョンが利用可能になったらすぐに更新することをお勧めします。最新バージョンにアップグレードできない場合は、エージェントを 90 日以内のバージョンに更新してください。エージェントを最新の状態に保つ方法の詳細については、こちらをご覧ください。
エージェントのリリースとサポート日については、New Relic Python エージェントのEOL ポリシーを参照してください。