Remarques
Cette version de l'agent Python ajoute la prise en charge Python 3.14, de nouvelles variables d'environnement pour les paramètres de filtre d'attributs, la prise en charge des générateurs asynchrones dans les décorateurs de transaction, des modèles supplémentaires dans AWS Bedrock et de nouvelles méthodes dans AWS Kinesis. Cette sortie corrige également un bug dans aiomysql qui provoquait RecursionError lors de l'utilisation de ConnectionPool lorsqu'il était enveloppé plusieurs fois, un bug où les propriétés n'étaient pas correctement transmises dans le producteur de kombu, et une erreur lorsque shutdown_agent est appelé depuis le thread de récolte.
Installez l'agent en utilisant easy_install/pip/distribute via l' index des packagesPython , en utilisant conda via l' index des packages Conda-Forge, ou téléchargez-le directement depuis le site de téléchargement de New Relic.
Caractéristiques
Ajout de la prise en charge de Python 3.14
- Ajout de la prise en charge de Python 3.14.
Ajouter des variables d'environnement pour les paramètres des filtres d'attributs
Les paramètres suivants peuvent désormais être définis via des variables d'environnement :
Paramètres de configuration Variable d'environnement attributes.enabledNEW_RELIC_ATTRIBUTES_ENABLEDattributes.excludeNEW_RELIC_ATTRIBUTES_EXCLUDEattributes.includeNEW_RELIC_ATTRIBUTES_INCLUDEbrowser_monitoring.attributes.enabledNEW_RELIC_BROWSER_MONITORING_ATTRIBUTES_ENABLEDbrowser_monitoring.attributes.excludeNEW_RELIC_BROWSER_MONITORING_ATTRIBUTES_EXCLUDEbrowser_monitoring.attributes.includeNEW_RELIC_BROWSER_MONITORING_ATTRIBUTES_INCLUDEerror_collector.attributes.enabledNEW_RELIC_ERROR_COLLECTOR_ATTRIBUTES_ENABLEDerror_collector.attributes.excludeNEW_RELIC_ERROR_COLLECTOR_ATTRIBUTES_EXCLUDEerror_collector.attributes.includeNEW_RELIC_ERROR_COLLECTOR_ATTRIBUTES_INCLUDEspan_events.attributes.enabledNEW_RELIC_SPAN_EVENTS_ATTRIBUTES_ENABLEDspan_events.attributes.excludeNEW_RELIC_SPAN_EVENTS_ATTRIBUTES_EXCLUDEspan_events.attributes.includeNEW_RELIC_SPAN_EVENTS_ATTRIBUTES_INCLUDEtransaction_events.attributes.enabledNEW_RELIC_TRANSACTION_EVENTS_ATTRIBUTES_ENABLEDtransaction_events.attributes.excludeNEW_RELIC_TRANSACTION_EVENTS_ATTRIBUTES_EXCLUDEtransaction_events.attributes.includeNEW_RELIC_TRANSACTION_EVENTS_ATTRIBUTES_INCLUDEtransaction_segments.attributes.enabledNEW_RELIC_TRANSACTION_SEGMENTS_ATTRIBUTES_ENABLEDtransaction_segments.attributes.excludeNEW_RELIC_TRANSACTION_SEGMENTS_ATTRIBUTES_EXCLUDEtransaction_segments.attributes.includeNEW_RELIC_TRANSACTION_SEGMENTS_ATTRIBUTES_INCLUDEtransaction_tracer.attributes.enabledNEW_RELIC_TRANSACTION_TRACER_ATTRIBUTES_ENABLEDtransaction_tracer.attributes.excludeNEW_RELIC_TRANSACTION_TRACER_ATTRIBUTES_EXCLUDEtransaction_tracer.attributes.includeNEW_RELIC_TRANSACTION_TRACER_ATTRIBUTES_INCLUDE
Ajouter la prise en charge des générateurs asynchrones dans les décorateurs transaction
- Auparavant, les décorateurs de transaction ne prenaient pas en charge l'encapsulation autour des générateurs asynchrones. Cette fonctionnalité a été ajoutée, et les transactions du générateur asynchrone mesureront désormais automatiquement le temps d'attente de la boucle d'événements et d'autres statistiques.
Ajout de la prise en charge de modèles supplémentaires dans l'instrumentation AWS Bedrock
Mise à jour de l'instrumentation AWS Bedrock via botocore et aiobotocore pour prendre en charge les modèles supplémentaires suivants
- Modèles Claude Sonnet 3+
- Modèles préfixés par une région (adaptatifs aux régions)
Ajouter l'instrumentation pour les nouvelles méthodes Kinesis
Ajoute l'instrumentation botocore pour prendre en charge les nouvelles méthodes AWS Kinesis
describe_account_settingsupdate_account_settingsupdate_max_record_sizeupdate_stream_warm_throughput
Débogage
Prévenir une erreur de récursion dans le pool de connexions aiomysql
- Auparavant, une erreur
RecursionErrorétait levée dans aiomysql lors de l'utilisation de connexions mises en pool. Des chaînes profondesObjectProxyont été créées autour de connexions mises en commun en raison d'un enroulement répété. Ce problème a été résolu.
- Auparavant, une erreur
Correction d'un bug où les propriétés n'étaient pas correctement transmises au producteur de Kombu
- Correction d'un bug où l'instrumentation pour
kombu.messaging.Producer.publish()entraînait l'imbrication accidentelle de propriétés à l'intérieur du dictionnaire, ce qui faisait que les propriétés se trouvaient au mauvais endroit et n'étaient pas lues par le package en aval.
- Correction d'un bug où l'instrumentation pour
Correction d'une erreur lors de l'appel de
shutdown_agentdepuis le thread de récolte- Auparavant, un
RuntimeErrorpouvait se produire lorsqueshutdown_agentétait appelé depuis le thread de récolte. Cela corrige ce problème en ajoutant une protection pour empêcher le plantage.
- Auparavant, un
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 fournit des correctifs pour l'activation précoce dans l'instrumentation Django, les remplacements côté serveur pour max_samples_stored ignorés et les protections contre les plantages de trace_cache.pop().
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.
Débogage
Empêche l'activation précoce dans l'instrumentation Django
- Supprimez les appels à
application_settings()dans l'instrumentation Django pour éviter les problèmes liés aux activations précoces dans les applications pré-fork.
- Supprimez les appels à
Résoudre les problèmes de synchronisation de la configuration du serveur avec la configuration locale
- Cela corrige un bug créé lorsque les paramètres
event_harvest_config.harvest_limits.*étaient obsolètes au profit des paramètres*.max_samples_stored. Certaines configurations côté serveur ne remplaçaient pas la configuration côté client, ce qui entraînait l'envoi de données au collecteur malgré la désactivation de cette fonction par l'utilisateur.
- Cela corrige un bug créé lorsque les paramètres
Protégez-vous contre les accidents de
trace_cache.pop()- Dans la classe
ContextOf, il y a eu un accès non sécurisé detrace_cacheviapop(key)sans valeur par défaut. Cela a provoqué des plantages lorsque leweakrefdans le dictionnaire était déjà récupéré par le garbage collector.
- Dans la classe
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
Prudence
Cette version de l'agent a été retirée.
Cette sortie de l'agent Python apporte les modifications suivantes :
- Supprime la prise en charge de Python 3.7
- Supprime et/ou déprécie diverses API et paramètres
- Obsolète l'instrumentation aioredis
- Augmente la version minimale prise en charge de
setuptoolsetsetuptools_scm - Ajoute une nouvelle instrumentation pour AutoGen
- Ajoute une nouvelle instrumentation pour Pyzeebe
- Ajoute de nouveaux MCP (Model Context Protocol) nommés spans
- Corrige un crash dans psycopg
- Garantit que les étendues MCP ne sont enregistrées que lorsque monitoring de l'IA est activée
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.
Fonctionnalité supprimée
Supprime la prise en charge de Python 3.7
- Python 3.7 a pris fin le 27 juin 2023. L'agent Python n'en prend plus en charge.
Supprime diverses API obsolètes
Les API suivantes ont été supprimées :
API héritée API de remplacement accept_distributed_trace_payloadaccept_distributed_trace_headersadd_custom_parameteradd_custom_attributeadd_custom_parametersadd_custom_attributescreate_distributed_trace_payloadinsert_distributed_trace_headersget_browser_timing_footerLa fonctionnalité de ceci a été intégrée dans get_browser_timing_header()record_exceptionnotice_error()NewRelicLogHandlerNewRelicLogForwardingHandlerlambda_handler&LambdaHandlerWrapperCes API ont été déplacées vers le package newrelic-lambda.
Supprime divers paramètres obsolètes
Les paramètres suivants ont été supprimés :
héritage Réglage Paramètre de remplacement transaction_tracer.capture_attributestransaction_tracer.attributes.enablederror_collector.capture_attributeserror_collector.attributes.enabledbrowser_monitoring.capture_attributesbrowser_monitoring.attributes.enabledanalytics_events.enabledtransaction_events.enabledanalytics_events.capture_attributestransaction_events.attributes.enablederror_collector.ignore_errorserror_collector.ignore_classesstrip_exception_messages.whiteliststrip_exception_messages.allowlistsslCeci est désormais codé en dur sur true, il a donc été supprimé en tant qu'option de paramètre.ignored_paramsUtilisez plutôt newrelic.attributes.exclude = request.parameters.{name}. Ajoutez chaque clé de paramètre de demande à la listenewrelic.attributes.exclude, délimitée par des virgules. Assurez-vous de préfixer la clé avecrequest.parameters.agent_limits.merge_stats_maximumCeci est désormais complètement ignoré au profit de la configuration côté serveur.
Fonctionnalité obsolète
L'instrumentation pour aioredis est obsolète
Supprime certains paramètres de récolte existants pour correspondre à d'autres agents de langage
Afin d'être plus cohérent avec les conventions des autres agents de langage, les paramètres de récolte suivants sont désormais obsolètes :
héritage Réglage Paramètre de remplacement event_harvest_config.harvest_limits.analytic_event_datatransaction_events.max_samples_storedevent_harvest_config.harvest_limits.span_event_dataspan_events.max_samples_storedevent_harvest_config.harvest_limits.error_event_dataerror_collector.max_event_samples_storedevent_harvest_config.harvest_limits.custom_event_datacustom_insights_events.max_samples_storedevent_harvest_config.harvest_limits.log_event_dataapplication_logging.forwarding.max_samples_storedIl s'agit d'une annulation d'une modification précédente qui a renommé ces paramètres de
*.max_samples_storedau formatevent_harvest_config.harvest_limits.*. Cette décision a été annulée et les noms des paramètres d'origine ont été restaurés pour correspondre aux autres agents linguistiques qui n'ont pas modifié ces noms de paramètres. Les paramètres obsolètes continueront de fonctionner pour le moment, mais ils seront supprimés lors d'une prochaine sortie.
Désapprouve la configuration de l'agent via le dictionnaire d'environnement WSGI
Les paramètres suivants, qui pouvaient auparavant être configurés via le dictionnaire d'environnement WSGI, sont désormais obsolètes. Veuillez configurer ces paramètres via des variables d'environnement ou le fichier de configuration.
newrelic.set_background_tasknewrelic.suppress_apdex_metricnewrelic.suppress_transaction_tracenewrelic.capture_request_paramsnewrelic.disable_browser_autorum
Supprime la prise en charge de la création de l'agent avec
setuptools<61.2ousetuptools_scm<6.4- Les versions minimales prises en charge de
setuptoolsetsetuptools_scmont été augmentées à61.2et6.4respectivement. Ceci permet de prendre en charge l'utilisation depyproject.tomlpour configurer les métadonnées du package et les instructions de construction. L'agent peut désormais être construit avec des outils de construction plus modernes qui n'enregistreront plus les avertissements concernant l'absence d'un fichierpyproject.toml. - Cette modification ajoute un nouvel attribut de version au package,
newrelic.__version__etnewrelic.__version_tuple__, qui peut être utilisé pour vérifier par programmation la version de l'agent au moment de l'exécution.
- Les versions minimales prises en charge de
Nouvelles fonctionnalités
Ajoute une nouvelle instrumentation pour AutoGen
- Ajoute une instrumentation (étendues nommées et événement
Llmpersonnalisé) pour les agents et les outils dans AutoGen
- Ajoute une instrumentation (étendues nommées et événement
Ajoute une nouvelle instrumentation pour Pyzeebe
- Ajoute une instrumentation automatique et un attribut d'agent spécifique frameworkpour Pyzeebe
Ajoute de nouveaux MCP (Model Context Protocol) nommés spans
- Ajoute de nouvelles étendues nommées pour les appels d'outils MCP (Model Context Protocol) effectués via le gestionnaire d'outils pour prendre en charge Streamable HTTP
Débogage
Corrige un crash dans
psycopg>=3.2.0lors de l'appelas_string()- Corrige un problème dans
psycopg>=3.2.0où la méthodeas_string()ne nécessitait plus d'arguments, provoquant un plantage potentiel. Ce problème a été corrigé et les deux signatures de cette méthode sont prises en charge.
- Corrige un problème dans
Garantit que les étendues MCP (Model Context Protocol) ne sont enregistrées que lorsque monitoring de l'IA est activée
- Garantit que les étendues MCP (Model Context Protocol) ne sont enregistrées que lorsque le paramètre
ai_monitoring.enabledest activé.
- Garantit que les étendues MCP (Model Context Protocol) ne sont enregistrées que lorsque le paramètre
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 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
optionsde 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.excludeinstrumentation.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
converseeffectués à l'aide des clientsboto3etaioboto3.
- 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_sampleddistributed_tracing.sampler.remote_parent_not_sampled
defaultest 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_onsignifie que la trace qui a un parent distant échantillonné ou un parent distant non échantillonné sera toujours échantillonnée.always_offsignifie 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_uridans 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,urlliba 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.settingsestNone, l'instrumentation pour ElasticSearch a fait planter l'application. Une solution de secoursglobal_settingsa été mise en place. Cela résout également le même problème rencontré dans GraphQL.
- Dans les cas où
Supprimer la méthode
optionsde la liste des clients ElasticSearch asynchrones- L'instrumentation précédente d'ElasticSearch a provoqué un crash car
optionsfigurait dans la liste des méthodes asynchrones. Cette méthode n'est plus encapsulée dans unDatastoreTracecar 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.pathenpathlib.Path- Convertissez toute l'utilisation interne des chemins basés sur des chaînes et
os.pathenpathlib.Pathen 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.