Notes
This release of the Python agent adds new ways of passing errors to notice_error(), adds support for Strands-Agent synchronous tool error capturing, adds support for gpt-5 and newer OpenAI LLM models, and fixes a crash in Azure Functions' utilization logic.
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.
Features
Add support for exception instances as arguments to
notice_error()notice_error()can now accept a caught exception instance (such as one from a try/except block) for theerrorargument, rather than an exception tuple fromsys.exc_info().This is in addition to and does not replace the existing behavior. Previous usage of
notice_error()with zero arguments or with an exception tuple should still function correctly.
Add support for
gpt-5and newer OpenAI LLM models- Add updates to OpenAI instrumentation to support newer attribute names used with later OpenAI models
Add support for Strands-Agent synchronous tool error capturing
- Synchronous Python functions used as tools in Strands-Agents now have proper error capturing, and capture traces within tools such as database lookups.
Bug fixes
Guard against crashes in Azure Functions utilization
- Previously, some users experienced edge cases where Azure Functions utilization detection would crash when attempting to match regular expressions. The crash has been fixed, and should no longer be possible in the future.
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 o seguinte:
- Fios
- AWS Bedrock Converse Streaming
- Métodos Redis
hybrid_searchemsetex - Atribuição de funções LangChain para o evento LLM
- timestamp do evento LLM capturado no momento da solicitação do LLM.
loop_factoryparâmetro emasyncio.Runner
Esta versão também corrige um bug na instrumentação ASGI, onde os cabeçalhos não são relatados pelo servidor web.
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.
Recurso
Adicionar suporte para Strands
- Adicionar instrumentação para as ferramentas Strands e para o agente em configurações de agente único e multiagente (enxames, grafos, etc.).
Adicionar suporte para AWS Bedrock Converse Streaming
- Adicionar suporte para monitoramento da API de streaming da Converse. Isso inclui suporte para chamadas de conclusão de bate-papo Converse feitas com clientes boto3 e aioboto3 usando
converse_stream().
- Adicionar suporte para monitoramento da API de streaming da Converse. Isso inclui suporte para chamadas de conclusão de bate-papo Converse feitas com clientes boto3 e aioboto3 usando
Adicionar suporte para métodos Redis
Adicionar suporte para os seguintes métodos:
hybrid_searchmsetex
Adicionar suporte para
loop_factoryemasyncio.Runner- No Python 3.11, a classe
asyncio.Runnerfoi adicionada, assim como o parâmetroloop_factory. O parâmetroloop_factoryfornece uma substituição para políticas de loop. Agora, o loop criado é instrumentado, independentemente de ser por meio de uma configuração de loop de eventos global ou de um loop de eventos personalizado.
- No Python 3.11, a classe
Capturar atribuições de funções do LangChain no evento LLM
- O evento LangChain
LlmChatCompletionMessageagora contém a função atribuída do LangChain.
- O evento LangChain
Registre timestamp do evento LLM no momento da solicitação do LLM.
- Anteriormente, o timestamp do evento LLM era capturado no momento da criação do evento. Agora, essa informação é capturada com mais precisão no momento da solicitação do LLM.
Correções de bugs
consumo de cabeçalho ASGI
- Quando um
ASGIWebTransactionconsome os cabeçalhos de um eventohttp.response.start, ele o faz sem levar em consideração os tipos de entrada permitidos. Quando os cabeçalhos são um gerador, o gerador foi consumido pela chamada paraprocess_response()não deixando cabeçalhos restantes para o servidor web enviar. O problema já foi resolvido.
- Quando 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.
Notas
Esta versão do agente Python adiciona suporte Python 3.14, novas variáveis de ambiente para configurações de filtro de atributos, suporte para geradores assíncronos em decoradores de transação, modelos adicionais no AWS Bedrock e novos métodos no AWS Kinesis. Esta versão também corrige um bug no aiomysql que causava RecursionError ao usar ConnectionPool onde ele era envolvido várias vezes, um bug onde as propriedades não eram passadas corretamente no produtor do kombu e um erro quando shutdown_agent é chamado de dentro da thread de colheita.
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.
Recurso
Adicionar suporte para Python 3.14
- Adicionar suporte para Python 3.14.
Adicionar variáveis de ambiente para configurações de filtros de atributos
As seguintes configurações agora podem ser definidas por meio de variáveis de ambiente:
Configuração Variável de ambiente attributes.enabledNEW_RELIC_ATTRIBUTES_ENABLEDattributes.excludeNEW_RELIC_ATTRIBUTES_EXCLUDEattributes.includeNEW_RELIC_ATTRIBUTES_INCLUDEbrowser_monitoring.attributes.enabledNEW_RELIC_BROWSER_MONITORING_ATTRIBUTES_ENABLEDbrowser_monitoring.attributes.excludeNEW_RELIC_BROWSER_MONITORING_ATTRIBUTES_EXCLUDEbrowser_monitoring.attributes.includeNEW_RELIC_BROWSER_MONITORING_ATTRIBUTES_INCLUDEerror_collector.attributes.enabledNEW_RELIC_ERROR_COLLECTOR_ATTRIBUTES_ENABLEDerror_collector.attributes.excludeNEW_RELIC_ERROR_COLLECTOR_ATTRIBUTES_EXCLUDEerror_collector.attributes.includeNEW_RELIC_ERROR_COLLECTOR_ATTRIBUTES_INCLUDEspan_events.attributes.enabledNEW_RELIC_SPAN_EVENTS_ATTRIBUTES_ENABLEDspan_events.attributes.excludeNEW_RELIC_SPAN_EVENTS_ATTRIBUTES_EXCLUDEspan_events.attributes.includeNEW_RELIC_SPAN_EVENTS_ATTRIBUTES_INCLUDEtransaction_events.attributes.enabledNEW_RELIC_TRANSACTION_EVENTS_ATTRIBUTES_ENABLEDtransaction_events.attributes.excludeNEW_RELIC_TRANSACTION_EVENTS_ATTRIBUTES_EXCLUDEtransaction_events.attributes.includeNEW_RELIC_TRANSACTION_EVENTS_ATTRIBUTES_INCLUDEtransaction_segments.attributes.enabledNEW_RELIC_TRANSACTION_SEGMENTS_ATTRIBUTES_ENABLEDtransaction_segments.attributes.excludeNEW_RELIC_TRANSACTION_SEGMENTS_ATTRIBUTES_EXCLUDEtransaction_segments.attributes.includeNEW_RELIC_TRANSACTION_SEGMENTS_ATTRIBUTES_INCLUDEtransaction_tracer.attributes.enabledNEW_RELIC_TRANSACTION_TRACER_ATTRIBUTES_ENABLEDtransaction_tracer.attributes.excludeNEW_RELIC_TRANSACTION_TRACER_ATTRIBUTES_EXCLUDEtransaction_tracer.attributes.includeNEW_RELIC_TRANSACTION_TRACER_ATTRIBUTES_INCLUDE
Adicionar suporte para geradores assíncronos em decoradores de transação.
- Anteriormente, os decoradores de transação não suportavam o encapsulamento em geradores assíncronos. Esse recurso foi adicionado e, agora, as transações do gerador assíncrono medirão automaticamente o tempo de espera do loop de eventos e outras estatísticas.
Adicionar suporte para modelos adicionais na instrumentação do AWS Bedrock.
Atualiza a instrumentação do AWS Bedrock por meio do botocore e do aiobotocore para oferecer suporte aos seguintes modelos adicionais.
- Modelos Claude Sonnet 3+
- Modelos que são prefixados com uma região (com reconhecimento de região)
Adicionar instrumentação para novos métodos Kinesis
Adiciona instrumentação botocore para dar suporte a novos métodos do AWS Kinesis.
describe_account_settingsupdate_account_settingsupdate_max_record_sizeupdate_stream_warm_throughput
Correções de bugs
Prevenir um erro de recursão no pool de conexões do aiomysql
- Anteriormente, um
RecursionErrorera gerado no aiomysql ao usar conexões agrupadas. Cadeias profundasObjectProxyforam criadas em torno de conexões agrupadas devido ao enrolamento repetido. Isso já foi corrigido.
- Anteriormente, um
Corrigido um bug em que as propriedades não eram passadas corretamente no produtor do Kombu.
- Corrigido um bug onde a instrumentação para
kombu.messaging.Producer.publish()estava fazendo com que as propriedades fossem aninhadas acidentalmente dentro do dicionário, fazendo com que as propriedades ficassem no lugar errado e não fossem lidas pelos pacotes subsequentes.
- Corrigido um bug onde a instrumentação para
Corrigir erro quando
shutdown_agenté chamado de dentro da thread de colheita.- Anteriormente, um
RuntimeErrorpoderia ocorrer quandoshutdown_agentera chamado de dentro do thread de colheita. Isso resolve o problema adicionando uma proteção para evitar a falha.
- Anteriormente, 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.
Notas
Esta versão do agente Python fornece correções para ativação antecipada na instrumentação Django, substituições do lado do servidor para max_samples_stored sendo ignoradas e protege contra travamentos de trace_cache.pop().
Instale o agente usando easy_install/pip/distribute por meio do Índice de Pacotes Python ou baixe-o diretamente do site de download do New Relic.
Correções de bugs
Impede a ativação antecipada na instrumentação Django
- Remova chamadas para
application_settings()na instrumentação Django para evitar problemas com ativações antecipadas em aplicativos pré-fork.
- Remova chamadas para
Corrigir problemas de sincronização da configuração do servidor com a configuração local
- Isso corrige um bug criado quando as configurações
event_harvest_config.harvest_limits.*foram descontinuadas em favor das configurações*.max_samples_stored. Algumas configurações no lado do servidor não estavam substituindo a configuração do lado do cliente, resultando no envio de dados para o coletor apesar do usuário ter desabilitado isso.
- Isso corrige um bug criado quando as configurações
Proteja-se contra colisões de
trace_cache.pop()- Na classe
ContextOf, houve um acesso inseguro dotrace_cacheviapop(key)sem um valor padrão. Isso causou travamentos quando oweakrefno dicionário já estava coletado como lixo.
- Na classe
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
Caution
Esta versão do agente foi retirada.
Esta versão do agente Python faz as seguintes alterações:
- Remove o suporte para Python 3.7
- Remove e/ou desaprova várias APIs e configurações
- Descontinua a instrumentação aioredis
- Aumenta a versão mínima suportada de
setuptoolsesetuptools_scm - Adiciona nova instrumentação para AutoGen
- Adiciona nova instrumentação para Pyzeebe
- Adiciona novos intervalos nomeados MCP (Model Context Protocol)
- Corrige uma falha no psycopg
- Garante que os intervalos do MCP sejam registrados somente quando o monitoramento de IA estiver habilitado
Instale o agente usando easy_install/pip/distribute por meio do Índice de Pacotes Python ou baixe-o diretamente do site de download do New Relic.
Recurso removido
Remove o suporte para Python 3.7
- O Python 3.7 foi encerrado em 27 de junho de 2023. O agente Python deixou de oferecer suporte a ele.
Remove várias APIs obsoletas
As seguintes APIs foram removidas:
APIlegado API de substituição accept_distributed_trace_payloadaccept_distributed_trace_headersadd_custom_parameteradd_custom_attributeadd_custom_parametersadd_custom_attributescreate_distributed_trace_payloadinsert_distributed_trace_headersget_browser_timing_footerA funcionalidade disto foi encapsulada em get_browser_timing_header()record_exceptionnotice_error()NewRelicLogHandlerNewRelicLogForwardingHandlerlambda_handler&LambdaHandlerWrapperEssas APIs foram movidas para o pacote newrelic-lambda.
Remove várias configurações obsoletas
As seguintes configurações foram removidas:
Cenário de legado Configuração de substituição transaction_tracer.capture_attributestransaction_tracer.attributes.enablederror_collector.capture_attributeserror_collector.attributes.enabledbrowser_monitoring.capture_attributesbrowser_monitoring.attributes.enabledanalytics_events.enabledtransaction_events.enabledanalytics_events.capture_attributestransaction_events.attributes.enablederror_collector.ignore_errorserror_collector.ignore_classesstrip_exception_messages.whiteliststrip_exception_messages.allowlistsslAgora isso está codificado em true, por isso foi removido como uma opção de configuração.ignored_paramsUse newrelic.attributes.exclude = request.parameters.{name}em vez disso. Adicione cada chave de parâmetro de solicitação à listanewrelic.attributes.exclude, delimitada por vírgulas. Certifique-se de preceder a chave comrequest.parameters.agent_limits.merge_stats_maximumAgora isso é completamente ignorado em favor da configuração do lado do servidor.
Recurso obsoleto
A instrumentação para aioredis foi descontinuada
Descontinua algumas configurações de coleta existentes para corresponder a outro agente de linguagem
Para ser mais consistente com as convenções do outro agente de linguagem, as seguintes configurações de coleta agora estão obsoletas:
Cenário de legado Configuração de substituição event_harvest_config.harvest_limits.analytic_event_datatransaction_events.max_samples_storedevent_harvest_config.harvest_limits.span_event_dataspan_events.max_samples_storedevent_harvest_config.harvest_limits.error_event_dataerror_collector.max_event_samples_storedevent_harvest_config.harvest_limits.custom_event_datacustom_insights_events.max_samples_storedevent_harvest_config.harvest_limits.log_event_dataapplication_logging.forwarding.max_samples_storedEsta é uma reversão de uma alteração anterior que renomeou essas configurações de
*.max_samples_storedpara o formatoevent_harvest_config.harvest_limits.*. Esta decisão foi revertida, e as configurações originais nomeadas foram restauradas para corresponder ao outro agente de idioma que não alterou esses nomes de configurações. As configurações obsoletas continuarão funcionando por enquanto, mas serão removidas em uma versão futura.
Descontinua a configuração do agente por meio do dicionário de ambiente WSGI
As seguintes configurações, que antes eram possíveis de serem definidas por meio do dicionário de ambiente WSGI, agora estão obsoletas. Configure essas configurações por meio de variáveis de ambiente ou do arquivo de configuração.
newrelic.set_background_tasknewrelic.suppress_apdex_metricnewrelic.suppress_transaction_tracenewrelic.capture_request_paramsnewrelic.disable_browser_autorum
Descontinua o suporte para construção do agente com
setuptools<61.2ousetuptools_scm<6.4- As versões mínimas suportadas de
setuptoolsesetuptools_scmforam aumentadas para61.2e6.4, respectivamente. Isso é para dar suporte ao uso depyproject.tomlpara configurar os metadados do pacote e instruções de construção. O agente agora pode ser criado com ferramentas de construção mais modernas, que não registrarão mais avisos sobre a falta de um arquivopyproject.toml. - Essa alteração adiciona um novo atributo de versão aos pacotes
newrelic.__version__enewrelic.__version_tuple__, que podem ser usados para verificar programaticamente a versão do agente em tempo de execução.
- As versões mínimas suportadas de
Novo recurso
Adiciona nova instrumentação para AutoGen
- Adiciona instrumentação (spans nomeados e evento
Llmpersonalizado) para agente e ferramentas no AutoGen
- Adiciona instrumentação (spans nomeados e evento
Adiciona nova instrumentação para Pyzeebe
- Adiciona instrumentação automática e atributo de agente específico frameworkpara Pyzeebe
Adiciona novos intervalos nomeados MCP (Model Context Protocol)
- Adiciona novos intervalos nomeados para chamadas de ferramentas MCP (Model Context Protocol) feitas por meio do gerenciador de ferramentas para oferecer suporte a Streamable HTTP
Correções de bugs
Corrige uma falha em
psycopg>=3.2.0ao chamaras_string()- Corrige um problema em
psycopg>=3.2.0em que o métodoas_string()não exigia mais argumentos, causando uma possível falha. Isso foi corrigido e ambas as assinaturas deste método são suportadas.
- Corrige um problema em
Garante que os intervalos do MCP (Model Context Protocol) sejam registrados somente quando o monitoramento de IA estiver habilitado
- Garante que os intervalos do MCP (Model Context Protocol) sejam registrados somente quando a configuração
ai_monitoring.enabledestiver habilitada.
- Garante que os intervalos do MCP (Model Context Protocol) sejam registrados somente quando a configuração
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 the following:
- Custom tasks in Celery
- Graphene-Django monitoring
- Middleware filtering in Django
- AWS Bedrock Converse API
- W3CTraceParent header sampled flag
This release also provides the following fixes:
- Safeguards for the deepest unique path in GraphQL
- Safeguards for web URL request parsing
- Fallback for ElasticSearch and GraphQL when
trace.settings==None - Remove
optionsmethod from async ElasticSearch client list
Install the agent using easy_install/pip/distribute via the Python Package Index or download it directly from the New Relic download site.
New features
Adds support for custom tasks in Celery
Adds support for Graphene-Django
- Add monitoring support for synchronous schemas created with Graphene-Django. Previously, schemas created with Graphene-Django would only be partially monitored, resulting in missing GraphQL related attributes.
Adds support for middleware filtering in Django
Users are now able to filter which Django middleware to monitor. There are now three additional settings:
instrumentation.middleware.django.enabled(Default istrue)instrumentation.middleware.django.excludeinstrumentation.middleware.django.include
See the Django Middleware Filtering page for more information and examples.
Adds support for AWS Bedrock Converse API
- Add monitoring support for non-streaming Converse API. This includes support for
conversechat completion calls made usingboto3andaioboto3clients.
- Add monitoring support for non-streaming Converse API. This includes support for
Adds support for W3CTraceParent header sampled flag
- When an upstream service sends the W3CTraceParent header with the sampling flag set, New Relic will take into account that sampling decision when deciding whether the current transaction will be sampled.
Added support for sampling decisions based on whether the remote parent is sampled
Added support for two new configuration options:
distributed_tracing.sampler.remote_parent_sampleddistributed_tracing.sampler.remote_parent_not_sampled
defaultis the default behavior and behaves as it did before this change (it passes the sampling decision to the adaptive sampling algorithm to determine whether the transaction will be sampled).always_onmeans that the trace that has a remote parent sampled or remote parent not sampled will always be sampled.always_offmeans that the trace that has a remote parent sampled or remote parent not sampled will never be sampled.
Bug fixes
Add safeguard for deepest unique path in GraphQL
- Some users were experiencing issues with the deepest unique path in GraphQL not being generated due to a field name returning
None. This issue has been fixed.
- Some users were experiencing issues with the deepest unique path in GraphQL not being generated due to a field name returning
Add safeguard for web request parsing
- Some users experienced a parsing error when
request_uriwas malformed or contained invalid characters. This can happen at this point if therequest_uriin the request header is invalid and does not match the (valid) URL originally given. While this safeguard has now been put in place in New Relic,urllibhas resolved this issue for versions of Python released after Jan 31, 2025.
- Some users experienced a parsing error when
Fix crash in ElasticSearch and GraphQL when
trace.settings==None- In cases where
trace.settingsisNone, the instrumentation for ElasticSearch crashed the application. Aglobal_settingsfallback has been put in place. This also resolves the same issue found in GraphQL.
- In cases where
Remove
optionsmethod from async ElasticSearch client list- The previous instrumentation of ElasticSearch caused a crash because
optionswas in the list of async methods. This method is no longer wrapped in aDatastoreTracesince it is not one that conducts any datastore operations/requests.
- The previous instrumentation of ElasticSearch caused a crash because
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.