メモ
Pythonエージェントのこのリリースでは、 Django計装の早期アクティベーションの修正、無視されるmax_samples_stored
サーバー側オーバーライド、およびtrace_cache.pop()
からのクラッシュに対する保護が提供されます。
Python パッケージ インデックス経由でeasy_install/pip/distribute
を使用してエージェントをインストールするか、 New Relic ダウンロード サイトから直接ダウンロードします。
バグ修正
Django計装での早期アクティベーションを防止します
- フォーク前のアプリケーションでの早期アクティベーションの問題を防ぐために、 Django計装の
application_settings()
への呼び出しを削除します。
- フォーク前のアプリケーションでの早期アクティベーションの問題を防ぐために、 Django計装の
サーバー設定とローカル設定の同期の問題を修正
- これは、
event_harvest_config.harvest_limits.*
設定が廃止され、*.max_samples_stored
設定に置き換えられたときに発生したバグを修正します。一部のサーバー側設定がクライアント側設定をオーバーライドしていないため、ユーザーがこれを無効にしているにもかかわらず、データがコレクターに送信されてしまいました。
- これは、
衝突から守る
trace_cache.pop()
ContextOf
クラスで、デフォルト値のないpop(key)
経由のtrace_cache
への安全でないアクセスがありました。これにより、辞書内のweakref
がすでにガベージ コレクションされている場合にクラッシュが発生しました。
サポートステートメント
最新のエージェント バージョンが利用可能になったらすぐに更新することをお勧めします。最新バージョンにアップグレードできない場合は、エージェントを 90 日以内のバージョンに更新してください。エージェントを最新の状態に保つ方法の詳細については、こちらをご覧ください。
エージェントのリリースとサポート日については、New Relic Python エージェントのEOL ポリシーを参照してください。
メモ
注意
このバージョンのエージェントは撤回されました。
このリリースの Python エージェントでは、次の変更が加えられています。
- Python 3.7のサポートを削除
- さまざまなAPIと設定を削除または廃止します
- aioredis計装を廃止します
setuptools
のサポートされている最小バージョンを上げ、setuptools_scm
- AutoGen用の新しい計装を追加
- Pyzeebe用の新しい計装を追加
- 新しいMCP(モデルコンテキストプロトコル)名前付きスパンを追加します
- psycopgのクラッシュを修正
- AIモニタリングが有効な場合にのみMCPスパンが記録されるようにします
Python パッケージ インデックス経由でeasy_install/pip/distribute
を使用してエージェントをインストールするか、 New Relic ダウンロード サイトから直接ダウンロードします。
削除された機能
Python 3.7のサポートを削除
- Python 3.7 は 2023 年 6 月 27 日に EOL となりました。Python エージェントでは、そのサポートが廃止されました。
さまざまな非推奨APIを削除します
次の API は削除されました:
レガシーAPI リプレースメントAPI accept_distributed_trace_payload
accept_distributed_trace_headers
add_custom_parameter
add_custom_attribute
add_custom_parameters
add_custom_attributes
create_distributed_trace_payload
insert_distributed_trace_headers
get_browser_timing_footer
この機能は get_browser_timing_header()
にラップされていますrecord_exception
notice_error()
NewRelicLogHandler
NewRelicLogForwardingHandler
lambda_handler
&LambdaHandlerWrapper
これらの API は newrelic-lambda
パッケージに移動されました。
さまざまな非推奨の設定を削除します
以下の設定は削除されました:
レガシー設定 置換設定 transaction_tracer.capture_attributes
transaction_tracer.attributes.enabled
error_collector.capture_attributes
error_collector.attributes.enabled
browser_monitoring.capture_attributes
browser_monitoring.attributes.enabled
analytics_events.enabled
transaction_events.enabled
analytics_events.capture_attributes
transaction_events.attributes.enabled
error_collector.ignore_errors
error_collector.ignore_classes
strip_exception_messages.whitelist
strip_exception_messages.allowlist
ssl
これは現在 true
にハードコードされているため、設定オプションとしては削除されました。ignored_params
代わりに newrelic.attributes.exclude = request.parameters.{name}
使用してください。各リクエストのキーをカンマで区切ってnewrelic.attributes.exclude
リストに追加します。 キーの先頭に必ずrequest.parameters
を付けてください。agent_limits.merge_stats_maximum
これは、サーバー側の設定を優先して完全に無視されるようになりました。
非推奨の機能
aioredisの計装は非推奨になりました
他の言語エージェントと一致するように、既存の収穫設定の一部を廃止します。
他の言語エージェントの規則との一貫性を保つために、次の収集設定は非推奨になりました。
レガシー設定 置換設定 event_harvest_config.harvest_limits.analytic_event_data
transaction_events.max_samples_stored
event_harvest_config.harvest_limits.span_event_data
span_events.max_samples_stored
event_harvest_config.harvest_limits.error_event_data
error_collector.max_event_samples_stored
event_harvest_config.harvest_limits.custom_event_data
custom_insights_events.max_samples_stored
event_harvest_config.harvest_limits.log_event_data
application_logging.forwarding.max_samples_stored
これは、これらの設定の名前を
*.max_samples_stored
からevent_harvest_config.harvest_limits.*
フォームに変更した以前の変更を元に戻したものです。この決定は覆され、設定名を変更しなかった他の言語エージェントと一致するように、元の設定名が復元されました。非推奨の設定は今のところは引き続き機能しますが、将来のリリースでは削除される予定です。
WSGI環境辞書によるエージェントの設定を非推奨にします
以前は WSGI environ 辞書を通じて構成可能だった以下の設定は非推奨になりました。これらの設定は、環境変数または設定ファイルを通じて構成してください。
newrelic.set_background_task
newrelic.suppress_apdex_metric
newrelic.suppress_transaction_trace
newrelic.capture_request_params
newrelic.disable_browser_autorum
setuptools<61.2
またはsetuptools_scm<6.4
setuptools
とsetuptools_scm
のサポートされる最小バージョンがそれぞれ61.2
と6.4
に増加されました。これは、パッケージ メタデータとビルド手順を構成するためのpyproject.toml
の使用をサポートするためのものです。エージェントは、より新しいビルド ツールを使用してビルドできるようになり、pyproject.toml
ファイルがないことに関する警告がログに記録されなくなりました。- この変更により、パッケージに新しいバージョン属性
newrelic.__version__
とnewrelic.__version_tuple__
が追加され、実行時にエージェントのバージョンをプログラムで確認できるようになります。
新機能
AutoGen用の新しい計装を追加
- AutoGenのエージェントとツールの計装 (名前付きスパンとカスタム
Llm
イベント) を追加します
- AutoGenのエージェントとツールの計装 (名前付きスパンとカスタム
Pyzeebe用の新しい計装を追加
- Pyzeebeに自動計装およびフレームワーク固有のエージェント プロパティを追加
新しいMCP(モデルコンテキストプロトコル)名前付きスパンを追加します
- ツール マネージャー経由で行われる MCP (モデル コンテキスト プロトコル) ツール呼び出しに新しい名前付きスパンを追加して、ストリーミング可能な HTTP をサポートします。
バグ修正
psycopg>=3.2.0
を呼び出すときに発生するクラッシュを修正しましたas_string()
as_string()
メソッドで引数が不要になり、クラッシュが発生する可能性があるpsycopg>=3.2.0
の問題を修正しました。この問題は修正され、このメソッドの両方のシグネチャがサポートされるようになりました。
AIモニタリングが有効な場合にのみMCP(モデルコンテキストプロトコル)スパンが記録されるようにします
- 設定
ai_monitoring.enabled
が有効になっている場合にのみ、MCP (モデル コンテキスト プロトコル) スパンが記録されるようにします。
- 設定
サポートステートメント
最新のエージェント バージョンが利用可能になったらすぐに更新することをお勧めします。最新バージョンにアップグレードできない場合は、エージェントを 90 日以内のバージョンに更新してください。エージェントを最新の状態に保つ方法の詳細については、こちらをご覧ください。
エージェントのリリースとサポート日については、New Relic Python エージェントのEOL ポリシーを参照してください。
メモ
このリリースの Python エージェントでは、以下のサポートが追加されました。
- Celeryのカスタムタスク
- Graphene-Django監視
- Djangoのミドルウェアフィルタリング
- AWS Bedrock コンバースAPI
- W3CTraceParent ヘッダーのサンプリングフラグ
このリリースでは、次の修正も提供されています。
- GraphQL における最も深いユニークパスの保護
- ウェブ URL リクエスト解析の安全策
- ElasticSearchとGraphQLのフォールバック
trace.settings==None
- 非同期 ElasticSearch クライアント リストから
options
メソッドを削除します
Python パッケージ インデックス経由でeasy_install/pip/distribute
を使用してエージェントをインストールするか、 New Relic ダウンロード サイトから直接ダウンロードします。
新機能
Celeryのカスタムタスクのサポートを追加
Graphene-Djangoのサポートを追加
- Graphene-Djangoで作成された同期スキーマの監視サポートを追加します。以前は、Graphene-Django で作成されたスキーマは部分的にしかモニターされず、 GraphQL関連の属性が欠落していました。
Django のミドルウェアフィルタリングのサポートを追加
ユーザーは、どのDjangoミドルウェアを監視するかをフィルタリングできるようになりました。 追加設定が 3 つあります。
instrumentation.middleware.django.enabled
(デフォルトはtrue
です)instrumentation.middleware.django.exclude
instrumentation.middleware.django.include
詳細と例については、 Django ミドルウェア フィルタリング ページを参照してください。
AWS Bedrock Converse APIのサポートを追加
- 非ストリーミングConverse API の監視サポートを追加します。これには
boto3
およびaioboto3
クライアントを使用して行われたconverse
チャット完了呼び出しのサポートが含まれます。
- 非ストリーミングConverse API の監視サポートを追加します。これには
W3CTraceParent ヘッダーのサンプリングフラグのサポートを追加
- アップストリーム サービスがサンプリング フラグを設定した W3CTraceParent ヘッダーを送信すると、New Relic は現在のトランザクションをサンプリングするかどうかを決定する際にそのサンプリング決定を考慮します。
リモート親がサンプリングされるかどうかに基づくサンプリング決定のサポートを追加しました
2 つの新しい設定オプションのサポートが追加されました。
distributed_tracing.sampler.remote_parent_sampled
distributed_tracing.sampler.remote_parent_not_sampled
default
これはデフォルトの動作であり、この変更前と同じように動作します (サンプリングの決定を適応サンプリング アルゴリズムに渡して、トランザクションをサンプリングするかどうかを決定します)。always_on
リモート親がサンプリングされたトレースとリモート親がサンプリングされていないトレースが常にサンプリングされることを意味します。always_off
リモート親がサンプリングされたトレース、またはリモート親がサンプリングされていないトレースはサンプリングされないことを意味します。
バグ修正
GraphQL の最も深いユニークパスに安全策を追加する
- 一部のユーザーは、フィールド名が
None
を返すため、 GraphQLの最も深い一意のパスが生成されないという問題を経験していました。この問題は修正されました。
- 一部のユーザーは、フィールド名が
Webリクエスト解析の安全策を追加する
request_uri
が不正な形式であったり無効な文字が含まれていたりした場合に、一部のユーザーに解析エラーが発生しました。この時点で、リクエスト ヘッダーのrequest_uri
が無効であり、最初に指定された (有効な) URL と一致しない場合にこれが発生する可能性があります。この安全対策は現在 New Relic に導入されていますが、urllib
2025 年 1 月 31 日以降にリリースされた Python のバージョンに対してこの問題を解決しました。
ElasticSearchとGraphQLのクラッシュを修正
trace.settings==None
trace.settings
がNone
の場合、ElasticSearch の計装によりアプリケーションがクラッシュしました。global_settings
フォールバックが設定されました。これにより、GraphQL で見つかった同じ問題も解決されます。
非同期 ElasticSearch クライアント リストから
options
メソッドを削除します- ElasticSearch の以前の計画では、
options
非同期メソッドのリストにあったためクラッシュが発生しました。 このメソッドは、データストアの操作やrequestsを実行するものではないため、DatastoreTrace
にラップされなくなりました。
- ElasticSearch の以前の計画では、
サポートステートメント
最新のエージェント バージョンが利用可能になったらすぐに更新することをお勧めします。最新バージョンにアップグレードできない場合は、エージェントを 90 日以内のバージョンに更新してください。エージェントを最新の状態に保つ方法の詳細については、こちらをご覧ください。
エージェントのリリースとサポート日については、New Relic Python エージェントのEOL ポリシーを参照してください。
メモ
このリリースの Python エージェントでは、新しいRedis関数のサポートが追加され、すべての内部パスがos.path
からpathlib.Path
に変換され、JSON エンコード PosixPaths に関する問題が修正されました。
Python パッケージ インデックス経由でeasy_install/pip/distribute
を使用してエージェントをインストールするか、 New Relic ダウンロード サイトから直接ダウンロードします。
新機能
新しいRedis関数のサポートを追加
- 新しいRedis関数の計装を追加します。
すべての内部パスを
os.path
からpathlib.Path
- Windows パスをサポートするための準備として、文字列ベースのパスと
os.path
のすべての内部使用をpathlib.Path
に変換します。
- Windows パスをサポートするための準備として、文字列ベースのパスと
バグ修正
JSON エンコード PosixPath の問題を修正
- 一部のユーザーで JSON エンコード
PosixPath
構成設定に関する問題が発生していました。この問題は修正されました。
- 一部のユーザーで JSON エンコード
サポートステートメント
最新のエージェント バージョンが利用可能になったらすぐに更新することをお勧めします。最新バージョンにアップグレードできない場合は、エージェントを 90 日以内のバージョンに更新してください。エージェントを最新の状態に保つ方法の詳細については、こちらをご覧ください。
エージェントのリリースとサポート日については、New Relic Python エージェントのEOL ポリシーを参照してください。
メモ
このリリースの Python エージェントでは、 oracledbのサポートが追加され、Kombu および Kafka でMessageTransaction
オブジェクトに属性destination_name
がないバグが修正され、AWS での使用率メタデータの消失が修正されました。
Python パッケージ インデックス経由でeasy_install/pip/distribute
を使用してエージェントをインストールするか、 New Relic ダウンロード サイトから直接ダウンロードします。
新機能
oracledbのサポートを追加
- oracledbの計装を追加します。
バグ修正
「
MessageTransaction
オブジェクトに属性destination_name
がありません」というバグを修正しました- MessageBroker モジュールの、シリアル化メソッドが
MessageTransaction
のdestination_name
プロパティを検索していたが、それが存在しないというバグを修正しました。
- MessageBroker モジュールの、シリアル化メソッドが
AWS と K8s を一緒に実行する際における AWS 使用率メタデータの問題を修正
- AWS EC2インスタンス上で動作するK8s Podの権限設定により、初めて使用状況メタデータを取得できるようになります。 ただし、アプリケーションが継続的に実行されたままになっていると、エージェントは再接続され、使用率メタデータの読み込みに失敗します。このような場合、使用率メタデータはエージェント インスタンスごとにキャッシュされ、取得できるようになります。
サポートステートメント
最新のエージェント バージョンが利用可能になったらすぐに更新することをお勧めします。最新バージョンにアップグレードできない場合は、エージェントを 90 日以内のバージョンに更新してください。エージェントを最新の状態に保つ方法の詳細については、こちらをご覧ください。
エージェントのリリースとサポート日については、New Relic Python エージェントのEOL ポリシーを参照してください。