Notes
This release of the Python agent adds additional model information to LangChain Chain LLM events, and fixes a bug in LangGraph streaming instrumentation.
Install the agent using easy_install/pip/distribute via the Python Package Index, using conda via the Conda-Forge Package Index, or download it directly from the New Relic download site.
Improved Features
Add additional model information to LangChain Chain LLM events
- Add
request.modelandresponse.modelattributes to LLM events produced by LangChain Chains. - This information is pulled on a best effort basis and may not always be available.
- Add
Bugs
Fix TypeError in LangGraph streaming instrumentation
- Previously, when using a subset of streaming APIs in LangGraph, the agent would encounter a
TypeErrordue to the use ofweakref.WeakMethodby LangGraph. This has been fixed, and the agent should now work correctly with those LangGraph streaming methods.
- Previously, when using a subset of streaming APIs in LangGraph, the agent would encounter a
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 release of the Python agent adds support for multiple new Redis commands, fixes a bug in LangGraph instrumentation, and improves handling and logging of harvest limit settings.
Install the agent using easy_install/pip/distribute via the Python Package Index, using conda via the Conda-Forge Package Index, or download it directly from the New Relic download site.
Improved Features
Add instrumentation for new Redis v8.8.0 commands
- Add instrumentation for the following new Redis commands from redis-py v8.8.0:
- Misc commands: INCREX, XNACK
- Array commands: ARCOUNT, ARDEL, ARDELRANGE, ARGET, ARGETRANGE, ARGREP, ARINFO, ARINSERT, ARLASTITEMS, ARLEN, ARMGET, ARMSET, ARNEXT, AROP, ARRING, ARSCAN, ARSEEK, ARSET
- Add instrumentation for the following new Redis commands from redis-py v8.8.0:
Bugs
Fix crash in LangGraph instrumentation
- Previously, when using LangGraph instrumentation, the agent would crash due to an issue with context propagation to jobs in AsyncBackgroundExecutor. This has been fixed, and the agent should now work correctly with LangGraph.
Improved handling and logging of harvest limit settings
- The agent now more accurately reports the list of harvest methods and limits to the Environment tab in New Relic One.
- The agent now has more consistent debug logging on startup for harvest limit settings.
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 corrige un problème de propagation du contexte dans LangChain et LangGraph, un problème d'enregistrement de complétion de chat OpenAI, et un problème lors de l'utilisation du streaming OpenAI(https://pypi.org/project/openai) via LiteLLM comme proxy.
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.
Bugs
Correction de la propagation du contexte dans LangChain et LangGraph
Corriger un problème d'enregistrement de complétion de chat OpenAI
- OpenAI a réintroduit une logique qui ferme la réponse en streaming même si le consommateur n’a pas lu toutes les données. Auparavant, les données de complétion de chat n'étaient enregistrées que lorsque la fin du flux était atteinte, ce qui faisait que les données de complétion de chat n'étaient pas enregistrées lors de la fermeture du flux. Une logique a maintenant été ajoutée pour capturer les données de complétion de chat même si le flux n'a pas été entièrement lu.
Correction d'un problème lors de l'utilisation du streaming OpenAI via LiteLLM en tant que proxy
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 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.