Remarques
Cette sortie de l'agent Python supprime la prise en charge de la fonction Lambda Python dans le fichier de configuration, exclut l'en-tête newrelic par défaut, ajoute la prise en charge des paramètres d'exclusion et d'inclusion pour les traces de l'agent hybride, de l'instrumentation anthropic, du streaming des réponses gemini, améliore la mise en cache de IS_PYPY dans gc_data.py pour les performances, et ajoute l'attribut http.statusCode dans les événements de transaction. Cette sortie renvoie également les modules lors de la reconnexion en s’assurant qu’ils sont enregistrés, protège les métriques de récupération de mémoire contre les appels réentrants, corrige la propagation des tâches dans les générateurs asynchrones et la propagation du contexte starlette dans StreamingResponse.
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.
Fonctionnalité supprimée
Supprimer la prise en charge des fonctions Lambda Python dans le fichier de configuration
- Auparavant, l'agent permettait de spécifier une fonction Lambda Python pour nommer dynamiquement les transactions, la tâche en arrière-plan, la trace de base de données, la trace de profil, l'URL et la méthode de trace externe, la trace de fonction, la trace de générateur, et la trace memcache. Puisque la prise en charge de cette fonctionnalité expose une vulnérabilité de sécurité dans l'agent, cette fonctionnalité est supprimée.
Dépréciations
- L'attribut
response.statusdans lesWebTransactions est considéré comme obsolète et sera supprimé lors de la prochaine sortie 14.0.0. Il est remplacé parhttp.statusCode. Nous recommandons de remplacer toutes les références àresponse.statusparhttp.statusCode.
Nouvelles fonctionnalités
Exclure l'en-tête
newrelicpar défaut- L'en-tête de tracing distribué
newrelicn'est désormais plus envoyé par défaut. Seuls les en-têtes W3Ctraceparentettracestateseront envoyés.
- L'en-tête de tracing distribué
Ajouter des paramètres d'exclusion et d'inclusion pour les traces Hybrid Agent
opentelemetry.traces.includepour que le fichier de configuration ouNEW_RELIC_OPENTELEMETRY_TRACES_INCLUDEsoit utilisé comme variable d'environnementopentelemetry.traces.excludepour que le fichier de configuration ouNEW_RELIC_OPENTELEMETRY_TRACES_EXCLUDEsoit utilisé comme variable d'environnement
Le comportement par défaut de l'Agent hybride sera également différent. Désormais, seules les bibliothèques et les traceurs qui sont pris en charge par OpenTelemetry, mais pas déjà pris en charge par New Relic, utiliseront l'instrumentation d'OpenTelemetry. Sinon, l'agent utilisera par défaut les hooks d'instrumentation de New Relic.
Vous trouverez plus d’informations sur ces paramètres sur la page de configuration de l’agent Python ainsi que sur la page de prise en charge de l’API OpenTelemetry.
Ajouter l'instrumentation de streaming Anthropic
- Ajoute la prise en charge de l’instrumentation pour anthropic.
Améliorer la mise en cache de IS_PYPY dans gc_data.py pour les performances
Vérifie et met désormais en cache IS_PYPY une fois lorsque le module est chargé.
Ajouter le streaming de réponse Gemini
- Ajouter la prise en charge du streaming des réponses à Gemini via le package google-genai.
Ajouter l'attribut
http.statusCodeaux événements de transaction- Pour se conformer au reste des agents de langage, l'agent Python envoie désormais le statut http à l'attribut
WebTransactionhttp.statusCode. L'agent Python continuera à envoyer l'attribut àresponse.statuségalement, mais l'attributresponse.statussera supprimé à l'avenir.
- Pour se conformer au reste des agents de langage, l'agent Python envoie désormais le statut http à l'attribut
Bugs
Renvoyer les modules lors de la reconnexion
- Auparavant, l'agent n'envoyait la liste des modules que périodiquement après le premier cycle de connexion. Si l'agent se reconnectait au collecteur, ces données ne seraient pas soumises à nouveau, l'interface utilisateur n'afficherait donc plus les données du module. Ce problème est maintenant résolu.
Protéger les métriques de garbage collection contre les appels réentrants
- Ajoute un indicateur pour empêcher les appels réentrants à
_GCDataSource.record_gc()afin d’éviter une récursion infinie sur Python 3.13+.
- Ajoute un indicateur pour empêcher les appels réentrants à
Activer la propagation des tâches dans les générateurs asynchrones
- Corrige un problème où
AsyncGeneratorProxyne gérait pas correctement la propagation du contexte de transaction si elle était répartie sur plusieurs tâches.
- Corrige un problème où
Correction de la propagation du contexte Starlette dans
StreamingResponse- Ajoute la propagation du contexte de trace à starlette
StreamingResponsepour les générateurs synchrones et asynchrones.
- Ajoute la propagation du contexte de trace à starlette
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 version de l'agent Python ajoute la prise en charge du temps jusqu'au premier token et corrige une signature de fonction add_url_rule Flask incompatible.
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.
Nouvelles fonctionnalités
Ajout du temps jusqu'au premier token pour les flux de réponse LLM :
Corrections de bugs
Résolution de l'incompatibilité de signature de la fonction
add_url_rulede Flask- Mise à jour de l'instrumentation de Flask pour aligner la signature de sa fonction
add_url_ruleavec l'implémentation native de Flask. Ce correctif empêche les plantages potentiels de l'application causés par la précédente incompatibilité de signature.
- Mise à jour de l'instrumentation de Flask pour aligner la signature de sa fonction
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 version de l'agent Python supprime la prise en charge du tracing inter-application (CAT), de Python 3.8 et des certificats SSL intégrés. Il met également à jour tous les paquets vendored vers leurs dernières versions, et ajoute la prise en charge de CPython free-threaded, des systèmes d'exploitation Windows, ainsi qu'une instrumentation améliorée pour Microsoft AG2 (Autogen). De plus, cette version inclut un nouvel extra optionnel pour installer des certificats SSL via certifi. Cette version corrige également un bug dans l'instrumentation de Strands Agents qui entraînait le signalement d'exceptions en double.
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.
Fonctionnalité supprimée
Le tracing inter-application (CAT) a été supprimé au profit du tracing distribué (DT).
- Le Cross Application Tracing (CAT) a été déprécié dans la version 7.0.0.166 de l'agent et a été supprimé dans cette version. Si vous utilisez encore Cross Application Tracing (CAT), nous vous recommandons de migrer vers le tracing distribué (DT) dès que possible pour éviter toute interruption.
Les certificats SSL inclus ont été supprimés.
- Si vous avez besoin de certificats pour votre environnement, vous pouvez les installer via le gestionnaire de paquets de votre système d'exploitation ou installer l'agent avec l'extra optionnel
newrelic[certificates].
- Si vous avez besoin de certificats pour votre environnement, vous pouvez les installer via le gestionnaire de paquets de votre système d'exploitation ou installer l'agent avec l'extra optionnel
La prise en charge de Python 3.8 a été supprimée.
- Python 3.8 a atteint sa fin de vie le 2024-10-07 et n'est plus pris en charge par l'agent. Veuillez envisager de mettre à niveau votre application vers une version de Python prise en charge afin de continuer à recevoir les mises à jour de l'Agent Python.
Sécurité
Tous les packages internes ont été mis à jour vers leurs dernières versions.
urllib3mis à jour vers la v2.6.3- Ceci corrige toutes les CVE ouvertes sur
urllib3à la date de cette version.
- Ceci corrige toutes les CVE ouvertes sur
opentelemetry_protomis à jour vers la v1.40.0wraptmis à jour vers la v2.1.2asgirefmis à jour vers la v3.11.1
Nouvelles fonctionnalités
Nouvel extra
newrelic[certificates]pour l'installation de certificats SSL via certifi.- L'agent fournit désormais un extra
newrelic[certificates]optionnel qui peut être utilisé pour installer les certificats SSL inclus. Ceci est destiné aux utilisateurs qui ont besoin de certificats mais qui ne peuvent pas les installer via le gestionnaire de paquets de leur système d'exploitation.
- L'agent fournit désormais un extra
Prise en charge de CPython free-threaded
- À partir de Python 3.13, CPython publie des versions de Python avec le Global Interpreter Lock (GIL) désactivé, permettant un véritable multithreading.
- Cette version ajoute la prise en charge de ce comportement, permettant à l'agent de s'exécuter en toute sécurité dans un environnement à thread libre.
- Cette version inclut également des binaires précompilés pour CPython free-threaded sur Linux et Windows, permettant une installation facile dans ces environnements.
Prise en charge de Windows
- Cette version inclut des binaires précompilés pour CPython 3.13 ou version ultérieure sous Windows.
- Notez que Python 3.12 ou une version antérieure n'est pas officiellement pris en charge sous Windows en raison de variations importantes dans la résolution des timers. Il est toujours possible d'installer et d'utiliser l'agent à partir des sources, mais les utilisateurs peuvent rencontrer des problèmes de données de chronométrage inexactes et devraient passer à Python 3.13 ou une version ultérieure pour une expérience optimale.
Instrumentation améliorée pour Microsoft AG2 (Autogen)
- Ajout de la prise en charge des réponses en streaming via la méthode de générateur asynchrone
on_messages_stream(). - L'instrumentation inclut désormais un attribut
subcomponentsur les spans qui représentent des appels d'outils ou d'agents. Ceci est utilisé pour fournir un mappage d'entités amélioré dans l'interface utilisateur New Relic.
- Ajout de la prise en charge des réponses en streaming via la méthode de générateur asynchrone
Bugs
Exceptions dupliquées dans Strands Agents
- Après une mise à jour de Strands Agents qui encapsule certaines exceptions dans un nouveau type
EventLoopException, des erreurs en double pourraient être signalées. Cela a été corrigé et l'erreur sous-jacente ne devrait être signalée qu'une seule fois.
- Après une mise à jour de Strands Agents qui encapsule certaines exceptions dans un nouveau type
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 version de l'agent Python ajoute la prise en charge des traces/spans pour Hybrid Agent, l'intégration de New Relic avec OpenTelemetry. Cela ajoute également des GUID d'entité aux fichiers de vérification de l'état d'Agent Control, des attributs subcomponent à l'instrumentation de l'IA agentique, la prise en charge de nouvelles méthodes client Redis, corrige un bug pouvant entraîner des instances ImportHookFinder en double et un bug dans l'instrumentation OracleDB Cursor.callproc().
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
Ajouter la prise en charge du tracing pour l'Agent hybride (Hybrid Agent)
L'agent hybride est conçu pour combler le fossé pour les équipes cherchant à adopter les normes OpenTelemetry tout en maintenant la rétrocompatibilité avec leurs dashboards New Relic existants. Hybrid Agent offre le « meilleur des deux mondes » en combinant la visibilité approfondie de New Relic avec la compatibilité de l'API OpenTelemetry. Il fournit une solution d'observabilité avec une prise en charge intégrée des API OpenTelemetry suivantes :
- Tracé
- Instrumentation de bibliothèques autonomes et de frameworks natifs
Des améliorations clés telles que les Span Links et les Events on Spans sont désormais disponibles, garantissant une interopérabilité transparente dans les environnements en mode mixte.
Introduit un nouvel échantillonneur basé sur le ratio de Trace ID
- Un nouvel échantillonneur basé sur le ratio d'ID de trace. Cet algorithme d'échantillonnage est basé sur l'échantillonneur du même nom d'OpenTelemetry et peut être configuré pour échantillonner un pourcentage défini de transactions.
Ajouter
subcomponentattributs à l'instrumentation de l'IA agentiqueAjouter le GUID de l'entité aux fichiers de contrôle de santé d'Agent Control
- Lorsque l'agent est démarré dans un environnement Agent Control, un fichier de bilan de santé est créé à l'emplacement de fichier configuré pour chaque processus de l'agent. Ce fichier inclut désormais le GUID de l'entité associée à l'agent lorsqu'il est disponible.
Ajouter l'instrumentation pour les nouvelles méthodes Redis
Ajoutez l'instrumentation pour les nouvelles méthodes suivantes sur les clients Redis :
- hotkeys_get
- Réinitialiser les raccourcis
- hotkeys_start
- hotkeys_stop
- vrange
- xcfgset
Bugs
Correction des instances ImportHookFinder en double
- Auparavant, il était possible que des doublons du finder de hook d'importation soient ajoutés à
sys.meta_path.
- Auparavant, il était possible que des doublons du finder de hook d'importation soient ajoutés à
Corriger la signature incorrecte sur OracleDB
Cursor.callproc()- Auparavant, tenter d'utiliser des arguments nommés avec
Cursor.callproc()provoquait des plantages car les noms d'arguments étaient incorrects dans notre instrumentation. Cela a été corrigé et l'argument supplémentairekeyword_parametersest désormais également pris en charge.
- Auparavant, tenter d'utiliser des arguments nommés avec
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 version de l'agent Python ajoute la prise en charge des agents LangGraph.
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
Ajouter la prise en charge des agents LangGraph
- Ajoute une instrumentation pour les invocations d'agents LangGraph via
create_agent()dans LangChain. Cela inclut les appels de l'agent versinvoke(),ainvoke(),stream()etastream().
- Ajoute une instrumentation pour les invocations d'agents LangGraph via
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.