Notes
This release of the Python agent fixes issues with signed headers in botocore (SigV4).
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.
Bugs
Fix issues with signed headers in botocore (SigV4)
- The previous change to botocore distributed tracing headers has been reverted to avoid duplicate headers being sent.
- Previously any distributed tracing headers that were generated by other tracing libraries could cause issues with instrumentation in botocore due to header signing. This has been fixed by disabling signing for these headers within botocore.
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 OpenSearch, Microsoft Azure SQL, new Kinesis methods, and a new browser_monitoring.version setting. Additionally, improvements have been made to Anthropic, MCP, and Google ADK instrumentation. Issues with signed headers in botocore (SigV4) and Gemini tools parsing have also been fixed for this release.
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.
New Features
New instrumentation for opensearch-py
- Instrumentation was added for the official OpenSearch database connector.
New instrumentation for mssql-python
- Instrumentation was added for Microsoft Azure SQL.
New instrumentation for new Kinesis methods
- The following methods are now supported in Kinesis:
create_channeldelete_channeldescribe_channellist_channelsupdate_channel
- The following methods are now supported in Kinesis:
New setting for
browser_monitoring.version- The new setting
browser_monitoring.versionenables users to specify specific versions of our Browser Monitoring Agent to be injected. - See the list of Supported Browser Agent Versions to choose from.
- The new setting
Improved Features
Improved support for anthropic.
- Improved parsing of request parameters for the Anthropic SDK on versions 1.0.0 and above.
- New parsing for responses via
Messages.with_raw_response.createenabling improved compatibility with LangChain.
Support for mcp v2.0.0 and above.
- Instrumentation has been updated following the major refactor done in
mcpv2.0.0 and should once again work as expected.
- Instrumentation has been updated following the major refactor done in
Support for Google ADK v2.9.0 and above.
- Instrumentation has been updated for Google ADK on versions 2.9.0 and above.
Bugs
Fix issues with signed headers in botocore (SigV4)
- Previously any distributed tracing headers that were generated by other tracing libraries could cause issues with instrumentation in botocore due to header signing. This has been fixed, and distributed tracing headers are now mutated before signing.
Fix Gemini tools parsing
- Previously, some instances of tools created with Gemini would fail to parse and would silently fail, resulting in no response for that specific request. This has been fixed.
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 d’Azure CosmosDB, ajoute l’instrumentation pour HTTPX2 et les nouvelles API d’événements de streaming LangChain/LangGraph, ajoute la prise en charge des nouvelles conventions sémantiques de base de données OpenTelemetry, et résout plusieurs problèmes, notamment le signalement incomplet de packages, une pénalité de performance de recherche de package et un bug de signalement de nom de base de données MySQL.
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 de la prise en charge d’Azure CosmosDB
- L’agent Python instrumente désormais les opérations client d’ Azure Cosmos DB, signalant les métriques et les traces du datastore pour les opérations de base de données, de conteneur et d’utilisateur effectuées via le SDK
azure-cosmos.
- L’agent Python instrumente désormais les opérations client d’ Azure Cosmos DB, signalant les métriques et les traces du datastore pour les opérations de base de données, de conteneur et d’utilisateur effectuées via le SDK
Ajout de la prise en charge de HTTPX2
Ajout de l’instrumentation des événements de streaming LangChain/LangGraph
Ajout de la prise en charge des nouvelles conventions sémantiques de base de données OpenTelemetry
- Lors de l’exécution de l’agent Python avec OpenTelemetry (mode agent hybride), l’agent lit désormais les noms d’attribut de span de base de données OpenTelemetry legacy et plus récents (
db.name/db.namespace,db.statement/db.query.text,db.mongodb.collection/db.collection.name), de sorte que le tracing de la base de données continue de fonctionner correctement, quelle que soit la version de la convention sémantique que la bibliothèque d’instrumentation OpenTelemetry émet.
- Lors de l’exécution de l’agent Python avec OpenTelemetry (mode agent hybride), l’agent lit désormais les noms d’attribut de span de base de données OpenTelemetry legacy et plus récents (
Bugs
Correction du signalement incomplet des packages à New Relic
- Auparavant, l’agent Python pouvait omettre certains packages installés des données d’environnement signalées à New Relic si la découverte de modules prenait plus de temps que la fenêtre de temps fixe allouée pendant le cycle de collecte lent, et que la liste de packages n’était pas actualisée après un redémarrage de l’agent. La capture de package s’exécute désormais pendant le cycle de collecte rapide et est entièrement recapturée lors de l’arrêt/redémarrage de l’agent, de sorte que la liste de packages signalée est complète.
Réduction de la surcharge des recherches de version de package
- Auparavant, la recherche des versions de package installées analysait à nouveau le système de fichiers pour chaque package à chaque recherche, entraînant une pénalité de temps O(n^2) qui augmentait avec le nombre de packages installés pendant l’initialisation de l’agent. Le résultat de
importlib.metadata.packages_distributions()est désormais mis en cache après la première recherche pour éviter cette surcharge.
- Auparavant, la recherche des versions de package installées analysait à nouveau le système de fichiers pour chaque package à chaque recherche, entraînant une pénalité de temps O(n^2) qui augmentait avec le nombre de packages installés pendant l’initialisation de l’agent. Le résultat de
Correction de
get_linking_metadatapour passer correctement par l’application spécifiée- Auparavant, l'appel de
newrelic.agent.get_linking_metadata(application=...)ignorait l'argumentapplicationet renvoyait toujours les métadonnées de liaison pour l'application par défaut. Cela affectait les processus remontant des données à plus d'une application. L'application spécifiée est désormais correctement transmise. - Merci à ckarnell pour sa contribution !
- Auparavant, l'appel de
Correction du signalement du nom de la base de données MySQL lors de l’utilisation de l’argument mot-clé
database- Auparavant, l’agent vérifiait uniquement l’argument mot-clé legacy
dblors de l’analyse du nom de la base de données à partir des arguments de connexion mysql-connector-python, de sorte que les connexions établies à l’aide de l’argument mot-clé modernedatabasene signalaient aucun nom de base de données dans les métriques du datastore. L’agent vérifie désormaisdatabaseen premier, puis se rabat surdb.
- Auparavant, l’agent vérifiait uniquement l’argument mot-clé legacy
Correction de l’avertissement lors de l’accès aux valeurs
GraphOutputde LangGraph v1.1+- Auparavant, l’instrumentation de LangGraph v1.1+ accédait aux valeurs de retour
GraphOutputà l’aide de la syntaxe d’accès aux éléments obsolète, déclenchant un avertissement d’obsolescence. L’agent lit désormaisGraphOutput.valuedirectement.
- Auparavant, l’instrumentation de LangGraph v1.1+ accédait aux valeurs de retour
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 commandes Redis introduites dans Redis v8.10.0 et redis-py v8.1.0. Cette sortie résout également le problème des événements LlmChatCompletion manquants dans LangChain lors de l'utilisation des outils MCP.
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 des commandes Redis introduites dans Redis v8.10.0 et redis-py v8.1.0
L’agent Python prend désormais en charge les commandes récemment ajoutées suivantes dans Redis:
himport_discard_allhimport_discardhimport_preparelmovemnrangenrevrangequerylabelsreadsdiffcardsunioncardaliaslist
Bugs
Correction des événements LlmChatCompletion manquants dans Gemini lors de l'utilisation des outils MCP
Passage à l’ID de cache de trace dans LangChain et Agent framework
- À des fins de propagation du contexte, échangez l'instrumentation de LangChain et d'Agent framework pour stocker uniquement l'ID du cache de trace plutôt que la trace complète dans un attribut de référence. Cela permet d'éviter que ces objets ne soient sérialisés de manière inattendue en cas de fuites. L'ID est un objet beaucoup plus petit, tandis que la trace peut contenir des Mo de donné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 de la configuration côté serveur du monitoring de l’IA, ajoute la propagation du contexte pour les invocations Bedrock effectuées via le framework Microsoft Agent, corrige les entités d’outil en double pour les outils LangChain soutenus par un serveur MCP distant, réduit le risque de condition de concurrence dans l’échantillonneur de données du ramasse-miettes, corrige les noms de transaction incohérents lors de l’utilisation de Wagtail, et supprime l’encodage d’octets des en-têtes de tracing distribué Kombu sortants.
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.
Nouvelle fonctionnalité
Ajouter la prise en charge de la configuration côté serveur du monitoring de l’IA
- L’agent Python prend désormais en charge la configuration côté serveur du monitoring de l’IA. Une fois configurées, les valeurs côté serveur
ai_monitoring.enabled,ai_monitoring.record_content.enabledetai_monitoring.streaming.enabledont priorité sur les paramètres locaux.
- L’agent Python prend désormais en charge la configuration côté serveur du monitoring de l’IA. Une fois configurées, les valeurs côté serveur
Ajouter la propagation du contexte pour les invocations Bedrock via le framework Agent
- Propage le contexte de trace à travers les limites de threads créées par l’intégration Bedrock de Microsoft Agent framework. Cela permet à l’instrumentation botocore existante de l’agent de capturer les événements LLM pour les invocations Bedrock effectuées via Agent framework. Cela n’ajoute pas une instrumentation complète d’Agent framework lui-même.
Bugs
Corriger les noms de transaction incohérents lors de l’utilisation de Wagtail
- Auparavant, les noms de transaction pour les applications basées sur Wagtail étaient incohérents et pouvaient être identiques pour différentes pages vues. Ce problème est résolu.
Correction des entités d’outil en double pour les outils LangChain s’appuyant sur un serveur MCP distant
- Auparavant, lorsqu’un outil LangChain était soutenu par un serveur MCP distant qui était également instrumenté séparément, des entités d’outil en double apparaissaient dans l’interface utilisateur. Cela a été corrigé en désactivant les attributs de sous-composant des outils LangChain lorsqu’un outil distant connu est détecté.
Corriger le champ d’entrée utilisateur manquant pour les appels d’outils MCP LangChain et LangGraph
- Auparavant, lorsque LangChain ou LangGraph utilisaient des outils provenant d’un serveur MCP, le champ d’entrée utilisateur pouvait être manquant dans les données de monitoring de l’IA si le message d’entrée n’était pas le dernier message de la séquence diffusée en continu. Cela a été corrigé, et l’agent extrait désormais correctement le message d’entrée dans ces cas.
Réduire le risque de condition de concurrence dans l’échantillonneur de données du ramasse-miettes
- Auparavant, l’agent appelait toujours
gc.get_objects()pour échantillonner le nombre d’objets du collecteur de mémoire, quelle que soit la configuration. Cela a été modifié de sorte quegc.get_objects()ne soit appelé que lorsquetop_object_count_limitest configuré au-dessus de0, évitant ainsi une itération inutile du tas pour les clients qui ne suivent pas les types d’objets collectés par le collecteur de mémoire.
- Auparavant, l’agent appelait toujours
Supprimer l’encodage en octets des en-têtes de tracing distribué Kombu sortants
- Auparavant, les en-têtes de tracing distribué ajoutés par l’instrumentation Kombu étaient encodés en octets, ce qui interrompait les transports qui sérialisent les charges avec le module
jsonde la bibliothèque standard (par exemple, les transports soutenus par SQLAlchemy). L’encodage en octets a été supprimé afin que ces transports fonctionnent correctement.
- Auparavant, les en-têtes de tracing distribué ajoutés par l’instrumentation Kombu étaient encodés en octets, ce qui interrompait les transports qui sérialisent les charges avec le module
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 l'instrumentation pour Google ADK, ajoute le comptage des jetons pour plusieurs fournisseurs d'IA (Anthropic, Google GenAI, OpenAI et AWS Bedrock), réduit la taille de l'en-tête tracestate sortant et corrige un plantage dans l'instrumentation de graphql-core.
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és améliorées
Ajout de l'instrumentation pour Google ADK
L'agent Python instrumente désormais les workflows d'agent d'IA Google ADK (Agent Development Kit).
Les composants instrumentés incluent :
LlmAgentliés aux backend Gemini ou VertexAI viagoogle.genai- Instances
FunctionTooldéfinies par l'utilisateur - Workflows de sous-agents incluant les agents enfants et les instances
AgentTool - Workflows multi-agents incluant la classe
Workflowet les classes obsolètesLoopAgent,ParallelAgentetSequentialAgent
Ajout du comptage des jetons pour Anthropic, Gemini, OpenAI et Bedrock
L'agent Python signale désormais le nombre de jetons pour toutes les invocations LLM sur plusieurs fournisseurs d'IA :
- SDK Anthropic
- SDK Google GenAI
- SDK OpenAI
- AWS Bedrock via botocore et aiobotocore
Bugs
Correction du plantage de l'instrumentation pour graphql-core v3.2.10
- Auparavant, graphql-core v3.2.10 a renommé l'attribut
errorsencollected_errorsdansExecutionContext, provoquant le plantage de l'agent. Cela a été corrigé et l'agent fonctionne désormais correctement avec graphql-core v3.2.10 et les versions ultérieures.
- Auparavant, graphql-core v3.2.10 a renommé l'attribut
Suppression de
spanIdde l'en-têtetracestatesortant- Auparavant, l'agent incluait
spanIddans l'en-têtetracestatesortant. Étant donné quespanIdest déjà présent dans l'en-têtetraceparent, il s'agissait d'une duplication inutile. LespanIda été supprimé detracestatepour réduire la taille de l'en-tête sortant.
- Auparavant, l'agent incluait
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.