Notes
This release of the Python agent adds instrumentation support for Google ADK, adds token counting for multiple AI providers (Anthropic, Google GenAI, OpenAI, and AWS Bedrock), reduces outbound tracestate header size, and fixes a crash in graphql-core 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
Added instrumentation for Google ADK
- The Python agent now instruments Google ADK (Agent Development Kit) AI agent workflows.
- Instrumented components include:
LlmAgentlinked to Gemini or VertexAI backends viagoogle.genai- User-defined
FunctionToolinstances - Sub-agent workflows including child agents and
AgentToolinstances - Multi-agent workflows including the
Workflowclass and deprecatedLoopAgent,ParallelAgent, andSequentialAgentclasses
Added token counting for Anthropic, Gemini, OpenAI, and Bedrock
- The Python agent now reports token counts for all LLM invocations across multiple AI providers:
- Anthropic SDK
- Google GenAI SDK
- OpenAI SDK
- AWS Bedrock via botocore and aiobotocore
- The Python agent now reports token counts for all LLM invocations across multiple AI providers:
Bugs
Fixed instrumentation crash for graphql-core v3.2.10
- Previously, graphql-core v3.2.10 renamed the
errorsattribute tocollected_errorsinExecutionContext, causing the agent to crash. This has been fixed, and the agent now works correctly with graphql-core v3.2.10 and later.
- Previously, graphql-core v3.2.10 renamed the
Removed
spanIdfrom outboundtracestateheader- Previously, the agent included
spanIdin the outboundtracestateheader. BecausespanIdis already present in thetraceparentheader, this was unnecessary duplication. ThespanIdhas been removed fromtracestateto reduce outbound header size.
- Previously, the agent included
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 des informations de modèle supplémentaires aux événements LLM de chaîne LangChain, et corrige un bug dans l'instrumentation de streaming de 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.
Fonctionnalités améliorées
Ajouter des informations supplémentaires sur le modèle aux événements LLM de la chaîne LangChain
- Ajoutez les attributs
request.modeletresponse.modelaux événements LLM produits par les chaînes LangChain. - Ces informations sont récupérées au mieux et peuvent ne pas toujours être disponibles.
- Ajoutez les attributs
Bugs
Correction de TypeError dans l'instrumentation de streaming de LangGraph
- Auparavant, lors de l’utilisation d’un sous-ensemble d’API de streaming dans LangGraph, l’agent rencontrait un
TypeErroren raison de l’utilisation deweakref.WeakMethodpar LangGraph. Cela a été corrigé, et l'agent devrait maintenant fonctionner correctement avec ces méthodes de streaming LangGraph.
- Auparavant, lors de l’utilisation d’un sous-ensemble d’API de streaming dans LangGraph, l’agent rencontrait 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 ajoute la prise en charge de plusieurs nouvelles commandes Redis, corrige un bug dans l'instrumentation de LangGraph, et améliore la gestion et le logging des paramètres de limite de collecte.
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
Ajouter l'instrumentation pour les nouvelles commandes Redis v8.8.0
Ajoutez l’instrumentation pour les nouvelles commandes Redis suivantes de redis-py v8.8.0 :
- Commandes diverses : INCREX, XNACK
- Commandes d'éventail : ARCOUNT, ARDEL, ARDELRANGE, ARGET, ARGETRANGE, ARGREP, ARINFO, ARINSERT, ARLASTITEMS, ARLEN, ARMGET, ARMSET, ARNEXT, AROP, ARRING, ARSCAN, ARSEEK, ARSET
Bugs
Correction d'un crash dans l'instrumentation de LangGraph
- Auparavant, lors de l'utilisation de l'instrumentation LangGraph, l'agent plantait en raison d'un problème de propagation du contexte vers les tâches dans AsyncBackgroundExecutor. Cela a été corrigé, et l'agent devrait maintenant fonctionner correctement avec LangGraph.
Amélioration de la gestion et du logging des paramètres de limite de collecte
- L'agent rapporte désormais avec plus de précision la liste des méthodes de collecte et des limites à l'onglet Environnement dans New Relic One.
- L'agent dispose désormais d'un logging de débogage plus cohérente au démarrage pour les paramètres de limite de collecte.
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 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.
Notes
This release of the Python agent adds support for time to first token and fixes an incompatible Flask add_url_rule function signature.
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
Added time to first token for LLM response streams:
Bugs fixes
Resolved Flask
add_url_rulefunction signature mismatch- Updated the instrumentation for Flask's to align its
add_url_rulefunction signature with the native Flask implementation. This fix prevents potential application crashes caused by the previous signature mismatch.
- Updated the instrumentation for Flask's to align its
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.