Notes
This release of the Python agent provides fixes for early activation in Django instrumentation, server side overrides for max_samples_stored
being ignored, and guards against crashes from trace_cache.pop()
.
Install the agent using easy_install/pip/distribute
via the Python Package Index or download it directly from the New Relic download site.
Bug fixes
Prevents early activation in Django instrumentation
- Remove calls to
application_settings()
in Django instrumentation to prevent issues with early activations in pre-fork applications.
- Remove calls to
Fix server configuration to local configuration sync issues
- This fixes a bug created when
event_harvest_config.harvest_limits.*
settings were deprecated in favor of*.max_samples_stored
settings. Some server side configurations were not overriding the client side configurations, resulting in data being sent to the collector despite the user disabling this.
- This fixes a bug created when
Guard against crashes from
trace_cache.pop()
- In the
ContextOf
class, there was an unsafe access of thetrace_cache
viapop(key)
without a default value. This caused crashes when theweakref
in the dictionary was already garbage collected.
- In the
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 version of the agent has been withdrawn.
This release of the Python agent makes the following changes:
- Removes support for Python 3.7
- Removes and or deprecates various APIs and settings
- Deprecates aioredis instrumentation
- Raises the minimum supported version of
setuptools
andsetuptools_scm
- Adds new instrumentation for AutoGen
- Adds new instrumentation for Pyzeebe
- Adds new MCP (Model Context Protocol) named spans
- Fixes a crash in psycopg
- Ensures MCP spans are only recorded when AI monitoring is enabled
Install the agent using easy_install/pip/distribute
via the Python Package Index or download it directly from the New Relic download site.
Removed features
Removes support for Python 3.7
- Python 3.7 was EOL'd June 27, 2023. The Python agent has dropped support for it.
Removes various deprecated APIs
The following APIs have been removed:
Legacy API Replacement 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
The functionality of this has been wrapped into get_browser_timing_header()
record_exception
notice_error()
NewRelicLogHandler
NewRelicLogForwardingHandler
lambda_handler
&LambdaHandlerWrapper
These APIs have moved to the newrelic-lambda
package.
Removes various deprecated settings
The following settings have been removed:
Legacy Setting Replacement Setting 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
This is now hardcoded to true
so it has been removed as a setting option.ignored_params
Use newrelic.attributes.exclude = request.parameters.{name}
instead. Add each request parameter key to thenewrelic.attributes.exclude
list, delimited by commas. Be sure to prepend the key withrequest.parameters
.agent_limits.merge_stats_maximum
This is now completely ignored in favor of serverside config.
Deprecated features
Instrumentation for aioredis has been deprecated
Deprecates some existing harvest settings to match other language agents
In order to be more consistent with the conventions of the other language agents, the following harvest settings are now deprecated:
Legacy Setting Replacement Setting 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
This is a revert of a previous change that renamed these settings from
*.max_samples_stored
to theevent_harvest_config.harvest_limits.*
form. This decision has been reversed, and the original settings named have been restored to match the other language agents who did not change these settings names. The deprecated settings will continue to work for now, but they will be removed in a future release.
Deprecates configuration of the agent through the WSGI environ dictionary
The following settings which were previously possible to configure through the WSGI environ dictionary are now deprecated. Please configure these settings through environment variables or the config file.
newrelic.set_background_task
newrelic.suppress_apdex_metric
newrelic.suppress_transaction_trace
newrelic.capture_request_params
newrelic.disable_browser_autorum
Deprecates support for building the agent with
setuptools<61.2
orsetuptools_scm<6.4
- The minimum supported versions of
setuptools
andsetuptools_scm
have been increased to61.2
and6.4
respectively. This is to support the use ofpyproject.toml
for configuring the package metadata and building instructions. The agent can now be built with more modern build tools which will no longer log warnings about the lack of apyproject.toml
file. - This change adds new version attributes to the packages,
newrelic.__version__
andnewrelic.__version_tuple__
, which can be used to programmatically check the version of the agent at runtime.
- The minimum supported versions of
New features
Adds new instrumentation for AutoGen
- Adds instrumentation (named spans and custom
Llm
events) for agents and tools in AutoGen
- Adds instrumentation (named spans and custom
Adds new instrumentation for Pyzeebe
- Adds automatic instrumentation and framework-specific agent attributes for Pyzeebe
Adds new MCP (Model Context Protocol) named spans
- Adds new named spans for MCP (Model Context Protocol) tool calls made via tool manager to support Streamable HTTP
Bug fixes
Fixes a crash in
psycopg>=3.2.0
when callingas_string()
- Fixes an issue in
psycopg>=3.2.0
where theas_string()
method no longer required arguments, causing a potential crash. This has been fixed, and both signatures of this method are supported.
- Fixes an issue in
Ensures MCP (Model Context Protocol) spans are only recorded when AI monitoring is enabled
- Ensures MCP (Model Context Protocol) spans are only recorded when the setting
ai_monitoring.enabled
is enabled.
- Ensures MCP (Model Context Protocol) spans are only recorded when the setting
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 エージェントでは、以下のサポートが追加されました。
- 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 ポリシーを参照してください。
メモ
このリリースの Python エージェントでは、Azure Function Appsとprotobuf v6 のサポートが追加されました。
Python パッケージ インデックス経由でeasy_install/pip/distribute
を使用してエージェントをインストールするか、 New Relic ダウンロード サイトから直接ダウンロードします。
新機能
Azure Function Apps のサポートを追加
- HTTPTrigger タイプのAzure Function Appsのサポートを追加します。
バグ修正
protobuf v6 サポートを有効にするために pb2 ファイルを追加します
- 以前は、 protobuf v6 のサポートが不足していたため、いくつかの Google パッケージは New Relic と互換性がありませんでした。これは解決されました。
サポートステートメント
最新のエージェント バージョンが利用可能になったらすぐに更新することをお勧めします。最新バージョンにアップグレードできない場合は、エージェントを 90 日以内のバージョンに更新してください。エージェントを最新の状態に保つ方法の詳細については、こちらをご覧ください。
エージェントのリリースとサポート日については、New Relic Python エージェントのEOL ポリシーを参照してください。