Notes
This release of the Python agent adds support for Azure CosmosDB, adds instrumentation for HTTPX2 and new LangChain/LangGraph streaming events APIs, adds support for newer OpenTelemetry database semantic conventions, and resolves several issues including incomplete package reporting, a package lookup performance penalty, and a MySQL database name reporting bug.
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 support for Azure CosmosDB
- The Python agent now instruments Azure Cosmos DB client operations, reporting datastore metrics and traces for database, container, and user operations performed through the
azure-cosmosSDK.
- The Python agent now instruments Azure Cosmos DB client operations, reporting datastore metrics and traces for database, container, and user operations performed through the
Added support for HTTPX2
Added LangChain/LangGraph streaming events instrumentation
Added support for newer OpenTelemetry database semantic conventions
- When running the Python agent alongside OpenTelemetry (Hybrid Agent mode), the agent now reads both the legacy and newer OpenTelemetry database span attribute names (
db.name/db.namespace,db.statement/db.query.text,db.mongodb.collection/db.collection.name), so database tracing continues to work correctly regardless of which semantic convention version the OpenTelemetry instrumentation library emits.
- When running the Python agent alongside OpenTelemetry (Hybrid Agent mode), the agent now reads both the legacy and newer OpenTelemetry database span attribute names (
Bugs
Fixed incomplete package reporting to New Relic
- Previously, the Python agent could omit some installed packages from the Environment data reported to New Relic if module discovery took longer than the fixed time window allotted during the slow harvest cycle, and the package list wasn't refreshed after an agent restart. Package capture now runs during the fast harvest cycle and is fully re-captured on agent shutdown/restart, so the reported package list is complete.
Reduced overhead of package version lookups
- Previously, looking up installed package versions rescanned the filesystem for every package on every lookup, incurring an O(n^2) time penalty that scaled with the number of installed packages during agent initialization. The result of
importlib.metadata.packages_distributions()is now cached after the first lookup to avoid this overhead.
- Previously, looking up installed package versions rescanned the filesystem for every package on every lookup, incurring an O(n^2) time penalty that scaled with the number of installed packages during agent initialization. The result of
Fixed
get_linking_metadatato properly pass through the specified application- Previously, calling
newrelic.agent.get_linking_metadata(application=...)ignored theapplicationargument and always returned linking metadata for the default application. This affected processes reporting to more than one application. The specified application is now correctly passed through. - Thank you ckarnell for the contribution!
- Previously, calling
Fixed MySQL database name reporting when using the
databasekeyword argument- Previously, the agent only checked the legacy
dbkeyword argument when parsing the database name from mysql-connector-python connection arguments, so connections made using the moderndatabasekeyword argument reported no database name in datastore metrics. The agent now checksdatabasefirst, falling back todb.
- Previously, the agent only checked the legacy
Fixed warning when accessing LangGraph v1.1+
GraphOutputvalues- Previously, LangGraph v1.1+ instrumentation accessed
GraphOutputreturn values using deprecated item-access syntax, triggering a deprecation warning. The agent now readsGraphOutput.valuedirectly.
- Previously, LangGraph v1.1+ instrumentation accessed
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.
Notas
Esta versão do agente Python adiciona suporte para comandos do Redis introduzidos no Redis v8.10.0 e redis-py v8.1.0. Esta versão também resolve o problema de eventos LlmChatCompletion ausentes no LangChain ao usar ferramentas MCP.
Instale o agente usando easy_install/pip/distribute através do Índice de Pacotes Python, usando conda através do Índice de Pacotes Conda-Forge ou baixe-o diretamente do site de download do New Relic.
Novo recurso
Adicionados comandos do Redis introduzidos no Redis v8.10.0 e redis-py v8.1.0
O agente Python agora suporta os seguintes comandos adicionados recentemente no Redis:
himport_discard_allhimport_discardhimport_preparelmovemnrangenrevrangequerylabelsreadsdiffcardsunioncardaliaslist
Bugs
Eventos LlmChatCompletion ausentes corrigidos no Gemini ao usar ferramentas MCP
Trocado para o ID de cache de trace no LangChain e no framework do agente
- Para fins de propagação de contexto, a instrumentação do LangChain e do framework do agente deve ser trocada para armazenar apenas o ID de cache de trace em vez do trace completo em um atributo de referência. Isso serve para evitar que esses objetos sejam serializados inesperadamente em caso de vazamentos. O ID é um objeto muito menor, enquanto o trace pode conter MBs de dados.
Declaração de apoio
Recomendamos atualizar para a versão mais recente do agente assim que estiver disponível. Se você não puder atualizar para a versão mais recente, atualize seu agente para uma versão com no máximo 90 dias. Saiba mais sobre como manter o agente atualizado.
Consulte a New Relic Python política de fim de vida útil do agente para obter informações sobre lançamentos de agentes e datas de suporte.
Notas
Esta versão do agente Python adiciona suporte para a configuração no lado do servidor do AI Monitoring, adiciona propagação de contexto para invocações do Bedrock feitas por meio do Microsoft Agent Framework, corrige entidades de ferramentas duplicadas para ferramentas do LangChain apoiadas por um servidor MCP remoto, reduz o risco de condição de corrida no amostrador de dados de coleta de lixo, corrige nomes de transação inconsistentes ao usar o Wagtail e remove a codificação de bytes dos cabeçalhos de distributed tracing de saída do Kombu.
Instale o agente usando easy_install/pip/distribute através do Índice de Pacotes Python, usando conda através do Índice de Pacotes Conda-Forge ou baixe-o diretamente do site de download do New Relic.
Novo recurso
Adicionar suporte para a configuração no lado do servidor do AI Monitoring
- O agente Python agora suporta a configuração no lado do servidor do AI Monitoring. Quando configurados, os valores
ai_monitoring.enabled,ai_monitoring.record_content.enabledeai_monitoring.streaming.enabledno lado do servidor têm precedência sobre as configurações locais.
- O agente Python agora suporta a configuração no lado do servidor do AI Monitoring. Quando configurados, os valores
Adiciona propagação de contexto para invocações do Bedrock através do Agent Framework
- Propaga o contexto do trace através dos limites de thread criados pela integração do Bedrock do Microsoft Agent Framework. Isso permite que a instrumentação existente do botocore do agente capture eventos de LLM para invocações do Bedrock feitas através do Agent Framework. Isso não adiciona instrumentação completa do próprio Agent Framework.
Bugs
Corrigir nomes de transação inconsistentes ao usar o Wagtail
- Anteriormente, os nomes de transação para aplicativos criados no Wagtail eram inconsistentes e podiam ser os mesmos para diferentes visualizações de página. O problema foi resolvido.
Corrige entidades de ferramenta duplicadas para ferramentas do LangChain com suporte de um servidor MCP remoto
- Anteriormente, quando uma ferramenta do LangChain era apoiada por um servidor MCP remoto que também era instrumentado separadamente, entidades de ferramenta duplicadas apareciam na interface. Isso foi corrigido desativando os atributos de subcomponentes das ferramentas do LangChain quando uma ferramenta remota conhecida é detectada.
Corrige o campo de entrada do usuário ausente para chamadas de ferramenta MCP do LangChain e LangGraph
- Anteriormente, quando o LangChain ou o LangGraph usavam ferramentas de um servidor MCP, o campo de entrada do usuário podia estar ausente dos dados do AI Monitoring se a mensagem de entrada não fosse a última mensagem na sequência transmitida. Isso foi corrigido, e o agente agora extrai corretamente a mensagem de entrada nesses casos.
Reduzir o risco de condição de corrida no amostrador de dados de coleta de lixo
- Anteriormente, o agente sempre chamava
gc.get_objects()para amostrar as contagens de objetos do coletor de lixo, independentemente da configuração. Isso foi alterado para quegc.get_objects()seja chamado apenas quandotop_object_count_limitestiver configurado acima de0, evitando a iteração desnecessária de heap para clientes que não rastreiam os tipos de objetos coletados pelo coletor de lixo.
- Anteriormente, o agente sempre chamava
Remover a codificação de bytes dos cabeçalhos de distributed tracing de saída do Kombu
- Anteriormente, os cabeçalhos de distributed tracing adicionados pela instrumentação do Kombu eram codificados em bytes, o que quebrava os transportes que serializam cargas com o módulo
jsonda biblioteca padrão (por exemplo, transportes apoiados pelo SQLAlchemy). A codificação de bytes foi removida para que esses transportes funcionem corretamente.
- Anteriormente, os cabeçalhos de distributed tracing adicionados pela instrumentação do Kombu eram codificados em bytes, o que quebrava os transportes que serializam cargas com o módulo
Declaração de apoio
Recomendamos atualizar para a versão mais recente do agente assim que estiver disponível. Se você não puder atualizar para a versão mais recente, atualize seu agente para uma versão com no máximo 90 dias. Saiba mais sobre como manter o agente atualizado.
Consulte a New Relic Python política de fim de vida útil do agente para obter informações sobre lançamentos de agentes e datas de suporte.
Notas
Esta versão do agente Python adiciona suporte de instrumentação para o Google ADK, adiciona contagem de tokens para vários provedores de IA (Anthropic, Google GenAI, OpenAI e AWS Bedrock), reduz o tamanho do cabeçalho tracestate de saída e corrige uma falha na instrumentação do graphql-core.
Instale o agente usando easy_install/pip/distribute através do Índice de Pacotes Python, usando conda através do Índice de Pacotes Conda-Forge ou baixe-o diretamente do site de download do New Relic.
Recursos Melhorados
Adicionada instrumentação para Google ADK
O agente Python agora instrumenta os fluxos de trabalho de agente de IA do Google ADK (Agent Development Kit).
Componentes instrumentados incluem:
LlmAgentvinculado a backends do Gemini ou VertexAI viagoogle.genai- Instâncias de
FunctionTooldefinidas pelo usuário - Fluxos de trabalho de subagentes, incluindo agentes filhos e instâncias de
AgentTool - Fluxos de trabalho multiagente incluindo a classe
Workflowe as classes descontinuadasLoopAgent,ParallelAgenteSequentialAgent
Adicionada contagem de tokens para Anthropic, Gemini, OpenAI e Bedrock
O agente Python agora relata as contagens de token para todas as invocações de LLM em vários provedores de IA:
- SDK da Anthropic
- Google GenAI SDK
- OpenAI SDK
- AWS Bedrock via botocore e aiobotocore
Bugs
Corrigida falha de instrumentação para graphql-core v3.2.10
- Anteriormente, o graphql-core v3.2.10 renomeou o atributo
errorsparacollected_errorsemExecutionContext, fazendo com que o agente falhasse. Isso foi corrigido, e o agente agora funciona corretamente com o graphql-core v3.2.10 e versões posteriores.
- Anteriormente, o graphql-core v3.2.10 renomeou o atributo
Removido
spanIddo cabeçalhotracestatede saída- Anteriormente, o agente incluía
spanIdno cabeçalhotracestatede saída. ComospanIdjá está presente no cabeçalhotraceparent, isso era uma duplicação desnecessária. OspanIdfoi removido detracestatepara reduzir o tamanho do cabeçalho de saída.
- Anteriormente, o agente incluía
Declaração de apoio
Recomendamos atualizar para a versão mais recente do agente assim que estiver disponível. Se você não puder atualizar para a versão mais recente, atualize seu agente para uma versão com no máximo 90 dias. Saiba mais sobre como manter o agente atualizado.
Consulte a New Relic Python política de fim de vida útil do agente para obter informações sobre lançamentos de agentes e datas de suporte.
Notas
Esta versão do agente Python adiciona informações adicionais de modelo aos eventos de LLM de cadeia do LangChain e corrige um bug na instrumentação de streaming do LangGraph.
Instale o agente usando easy_install/pip/distribute através do Índice de Pacotes Python, usando conda através do Índice de Pacotes Conda-Forge ou baixe-o diretamente do site de download do New Relic.
Recursos Melhorados
Adicionar informações adicionais do modelo aos eventos de LLM da cadeia do LangChain
- Adicione os atributos
request.modeleresponse.modelaos eventos de LLM produzidos por cadeias do LangChain. - Essas informações são coletadas com base no melhor esforço e podem não estar sempre disponíveis.
- Adicione os atributos
Bugs
Corrigir TypeError na instrumentação de streaming do LangGraph
- Anteriormente, ao usar um subconjunto de APIs de streaming no LangGraph, o agente encontrava um
TypeErrordevido ao uso deweakref.WeakMethodpelo LangGraph. Isso foi corrigido, e o agente agora deve funcionar corretamente com esses métodos de streaming do LangGraph.
- Anteriormente, ao usar um subconjunto de APIs de streaming no LangGraph, o agente encontrava um
Declaração de apoio
Recomendamos atualizar para a versão mais recente do agente assim que estiver disponível. Se você não puder atualizar para a versão mais recente, atualize seu agente para uma versão com no máximo 90 dias. Saiba mais sobre como manter o agente atualizado.
Consulte a New Relic Python política de fim de vida útil do agente para obter informações sobre lançamentos de agentes e datas de suporte.
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.