Notes
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.
Remarques
Cette sortie de l'agent Python ajoute la prise en charge des éléments suivants :
- Tâches personnalisées dans Celery
- Monitoringde Graphene-Django
- Filtrage middleware dans Django
- API AWS Bedrock Converse
- Indicateur d'échantillon d'en-tête W3CTraceParent
Cette sortie fournit également les correctifs suivants :
- Garanties pour le chemin unique le plus profond dans GraphQL
- Mesures de protection pour l'analyse des requêtes d'URL Web
- Recours à ElasticSearch et GraphQL lorsque
trace.settings==None
- Supprimer la méthode
options
de la liste des clients ElasticSearch asynchrones
Installez l'agent à l'aide de easy_install/pip/distribute
via l' index du packagePython ou téléchargez-le directement depuis le site de téléchargement de New Relic.
Nouvelles fonctionnalités
Ajoute la prise en charge des tâches personnalisées dans Celery
- Ajoutez la prise en charge monitoring pour les classes de tâches personnalisées dans Celery. Auparavant, seules les tâches utilisant la classe de tâches par défaut pouvaient être monitorées. Remarque : cette version de l'agent Python ne prendra plus en charge les versions de Celery inférieures à la version 5.2.0.
Ajoute la prise en charge de Graphene-Django
- Ajoutez la prise en charge monitoring pour les schémas synchrones créés avec Graphene-Django. Auparavant, les schémas créés avec Graphene-Django n'étaient que partiellement monitorés, ce qui entraînait l'absence d'attributs liés GraphQL.
Ajoute la prise en charge du filtrage middleware dans Django
Les utilisateurs sont désormais en mesure de filtrer le middleware Django à monitorer. Il existe désormais trois paramètres supplémentaires:
instrumentation.middleware.django.enabled
(La valeur par défaut esttrue
)instrumentation.middleware.django.exclude
instrumentation.middleware.django.include
Consultez la page Filtrage du middleware Django pour plus d’informations et d’exemples.
Ajoute la prise en charge de l'API AWS Bedrock Converse
- Ajoutez la prise en charge monitoring pour l'API Converse non diffusée en continu. Cela inclut la prise en charge des appels de fin de discussion
converse
effectués à l'aide des clientsboto3
etaioboto3
.
- Ajoutez la prise en charge monitoring pour l'API Converse non diffusée en continu. Cela inclut la prise en charge des appels de fin de discussion
Ajoute la prise en charge de l'indicateur d'échantillonnage de l'en-tête W3CTraceParent
- Lorsqu'un service en amont envoie l'en-tête W3CTraceParent avec l'indicateur d'échantillonnage défini, New Relic prendra en compte cette décision d'échantillonnage pour décider si la transaction en cours sera échantillonnée.
Ajout de la prise en charge des décisions d'échantillonnage en fonction de l'échantillonnage du parent distant
Ajout de la prise en charge de deux nouvelles options de configuration :
distributed_tracing.sampler.remote_parent_sampled
distributed_tracing.sampler.remote_parent_not_sampled
default
est le comportement par défaut et se comporte comme avant ce changement (il transmet la décision d'échantillonnage à l'algorithme d'échantillonnage adaptatif pour déterminer si la transaction sera échantillonnée).always_on
signifie que la trace qui a un parent distant échantillonné ou un parent distant non échantillonné sera toujours échantillonnée.always_off
signifie que la trace qui a un parent distant échantillonné ou un parent distant non échantillonné ne sera jamais échantillonnée.
Débogage
Ajouter une protection pour le chemin unique le plus profond dans GraphQL
- Certains utilisateurs rencontraient des problèmes avec le chemin unique le plus profond dans GraphQL qui n'était pas généré en raison d'un nom de champ renvoyant
None
. Ce problème a été résolu.
- Certains utilisateurs rencontraient des problèmes avec le chemin unique le plus profond dans GraphQL qui n'était pas généré en raison d'un nom de champ renvoyant
Ajouter une protection pour l'analyse des requêtes Web
- Certains utilisateurs ont rencontré une erreur d'analyse lorsque
request_uri
était mal formé ou contenait des caractères non valides. Cela peut se produire à ce stade si lerequest_uri
dans l'en-tête de la requête n'est pas valide et ne correspond pas à l'URL (valide) fournie à l'origine. Bien que cette protection ait désormais été mise en place dans New Relic,urllib
a résolu ce problème pour les versions de Python sortie après le 31 janvier 2025.
- Certains utilisateurs ont rencontré une erreur d'analyse lorsque
Correction du crash dans ElasticSearch et GraphQL lorsque
trace.settings==None
- Dans les cas où
trace.settings
estNone
, l'instrumentation pour ElasticSearch a fait planter l'application. Une solution de secoursglobal_settings
a été mise en place. Cela résout également le même problème rencontré dans GraphQL.
- Dans les cas où
Supprimer la méthode
options
de la liste des clients ElasticSearch asynchrones- L'instrumentation précédente d'ElasticSearch a provoqué un crash car
options
figurait dans la liste des méthodes asynchrones. Cette méthode n'est plus encapsulée dans unDatastoreTrace
car elle n'effectue aucune opération/requests datastore.
- L'instrumentation précédente d'ElasticSearch a provoqué un crash car
Déclaration de soutien
Nous vous recommandons de mettre à jour vers la dernière version de l'agent dès qu'elle est disponible. Si vous ne pouvez pas effectuer la mise à niveau vers la dernière version, mettez à jour vos agents vers une version datant de moins de 90 jours. En savoir plus sur la façon de tenir les agents informés.
Consultez la politique EOL de l'agent Python de New Relic pour obtenir des informations sur la sortie de l'agent et les dates de support.
Remarques
Cette sortie de l'agent Python ajoute la prise en charge de nouvelles fonctions Redis , convertit tous les chemins internes de os.path
à pathlib.Path
et corrige un problème avec l'encodage JSON PosixPaths.
Installez l'agent à l'aide de easy_install/pip/distribute
via l' index du packagePython ou téléchargez-le directement depuis le site de téléchargement de New Relic.
Nouvelles fonctionnalités
Ajoute la prise en charge de nouvelles fonctions Redis
- Ajoutez une instrumentation pour les nouvelles fonctions Redis .
Convertir tous les chemins internes de
os.path
enpathlib.Path
- Convertissez toute l'utilisation interne des chemins basés sur des chaînes et
os.path
enpathlib.Path
en préparation pour prendre en charge les chemins Windows.
- Convertissez toute l'utilisation interne des chemins basés sur des chaînes et
Débogage
Correction du problème avec l'encodage JSON PosixPath
- Certains utilisateurs rencontraient des problèmes avec les paramètres configuration de l'encodage JSON
PosixPath
. Ce problème a été résolu.
- Certains utilisateurs rencontraient des problèmes avec les paramètres configuration de l'encodage JSON
Déclaration de soutien
Nous vous recommandons de mettre à jour vers la dernière version de l'agent dès qu'elle est disponible. Si vous ne pouvez pas effectuer la mise à niveau vers la dernière version, mettez à jour vos agents vers une version datant de moins de 90 jours. En savoir plus sur la façon de tenir les agents informés.
Consultez la politique EOL de l'agent Python de New Relic pour obtenir des informations sur la sortie de l'agent et les dates de support.
Remarques
Cette sortie de l'agent Python ajoute le support pour oracledb, corrige un bug dans Kombu et Kafka où l'objet MessageTransaction
n'a pas d'attribut destination_name
, et corrige la disparition de l'utilisation mémorisée avec AWS.
Installez l'agent à l'aide de easy_install/pip/distribute
via l' index du packagePython ou téléchargez-le directement depuis le site de téléchargement de New Relic.
Nouvelles fonctionnalités
Ajoute la prise en charge d'oracledb
- Ajouter une instrumentation pour oracledb.
Débogage
Correction du bug « L'objet
MessageTransaction
n'a pas d'attributdestination_name
»- Correction d'un bug dans les instrumentations MessageBroker où les méthodes de sérialisation recherchaient l'attribut
destination_name
surMessageTransaction
et il n'existait pas.
- Correction d'un bug dans les instrumentations MessageBroker où les méthodes de sérialisation recherchaient l'attribut
Résoudre le problème de métadonnées d'utilisation d'AWS lors de l'exécution simultanée d'AWS et de K8
- En raison des paramètres d'autorisations dans le pod K8s exécuté sur les instances AWS EC2, les métadonnées d'utilisation peuvent être récupérées la première fois. Cependant, si l'application est laissée en cours d'exécution en continu, l'agent se reconnectera et les métadonnées d'utilisation ne parviendront pas à se charger. Dans de tels cas, les métadonnées d’utilisation sont mises en cache par instance d’agent et peuvent être récupérées.
Déclaration de soutien
Nous vous recommandons de mettre à jour vers la dernière version de l'agent dès qu'elle est disponible. Si vous ne pouvez pas effectuer la mise à niveau vers la dernière version, mettez à jour vos agents vers une version datant de moins de 90 jours. En savoir plus sur la façon de tenir les agents informés.
Consultez la politique EOL de l'agent Python de New Relic pour obtenir des informations sur la sortie de l'agent et les dates de support.
Remarques
Cette sortie de l'agent Python ajoute la prise en charge d'Azure Function Apps et de protobuf v6.
Installez l'agent à l'aide de easy_install/pip/distribute
via l' index du packagePython ou téléchargez-le directement depuis le site de téléchargement de New Relic.
Nouvelles fonctionnalités
Ajoute la prise en charge des applications Azure Function
- Ajoute la prise en charge des applications Azure Function pour les types HTTPTrigger.
Débogage
Ajoute des fichiers pb2 pour activer la prise en charge de protobuf v6
- Auparavant, plusieurs packages Google n'étaient pas compatibles avec New Relic en raison du manque de prise en charge de protobuf v6. Cela a maintenant été résolu.
Déclaration de soutien
Nous vous recommandons de mettre à jour vers la dernière version de l'agent dès qu'elle est disponible. Si vous ne pouvez pas effectuer la mise à niveau vers la dernière version, mettez à jour vos agents vers une version datant de moins de 90 jours. En savoir plus sur la façon de tenir les agents informés.
Consultez la politique EOL de l'agent Python de New Relic pour obtenir des informations sur la sortie de l'agent et les dates de support.
Notes
This release of the Python agent adds support for the Model Context Protocol (MCP) and fixes import logic for importlib.metadata
and pkg_resources
.
Install the agent using easy_install/pip/distribute
via the Python Package Index or download it directly from the New Relic download site.
New features
Add support for Model Context Protocol (MCP)
Bug fixes
Fix import logic for
importlib.metadata
andpkg_resources
- Updates logic around import of
importlib.metadata
to also attempt to use theimportlib_metadata
backport before falling back topkg_resources.*
. This also removes use ofsys.version
conditionals and fixes issues where Python 3.9 could only usepkg_resources
despite havingimportlib.metadata
available.
- Updates logic around import of
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.