Notes
This release of the Python agent adds Python 3.14 support, new environment variables for attribute filter settings, support for async generators in transaction decorators, additional models in AWS Bedrock, and new methods in AWS Kinesis. This release also fixes a bug in aiomysql which caused RecursionError when using ConnectionPool where it was wrapped multiple times, a bug where properties were not properly passed in kombu's producer, and an error when shutdown_agent is called from within the harvest thread.
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 Python 3.14
- Add support for Python 3.14.
Add environment variables for attribute filters settings
The following settings now have the option to be set through environment variables:
Configuration Setting Environment variable 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
Add support for async generators in transaction decorators
- Previously, transaction decorators did not support being wrapped around async generators. This support has been added, and async generator transactions will now automatically measure event loop wait time and other statistics.
Add support for additional models in AWS Bedrock instrumentation
Updates AWS Bedrock instrumentation through botocore and aiobotocore to support the following additional models
- Claude Sonnet 3+ models
- Models that are prefixed with a region (region-aware)
Add instrumentation for new Kinesis methods
- Adds botocore instrumentation to support new AWS Kinesis methomethods
describe_account_settingsupdate_account_settingsupdate_max_record_sizeupdate_stream_warm_throughput
- Adds botocore instrumentation to support new AWS Kinesis methomethods
Bug fixes
Prevent a RecursionError in aiomysql ConnectionPool
- Previously, a
RecursionErrorwould be raised in aiomysql when using pooled connections. DeepObjectProxychains were created around pooled connections due to repeated wrapping. This has been fixed.
- Previously, a
Fixed a bug where properties were not properly passed in kombu's producer
- Fixed a bug where instrumentation for
kombu.messaging.Producer.publish()was causing properties to accidentally be nested inside of the dictionary, causing the properties to be in the wrong spot and not read by downstream packages.
- Fixed a bug where instrumentation for
Fix error when
shutdown_agentis called from within the harvest thread- Previously, a
RuntimeErrorcould occur whenshutdown_agentwas called from within the harvest thread. This fixes that issue by adding a guard to prevent the crash.
- Previously, 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.
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
Cuidado
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.
Notas
Esta versão do agente Python adiciona suporte para o seguinte:
- Tarefas personalizadas no Celery
- Monitoramento de Graphene-Django
- Filtragem de middleware em Django
- API AWS Bedrock Converse
- Sinalizador de amostra do cabeçalho W3CTraceParent
Esta versão também fornece as seguintes correções:
- Salvaguardas para o caminho único mais profundo em GraphQL
- Salvaguardas para análise de solicitações de URL da web
- Alternativa para ElasticSearch e GraphQL quando
trace.settings==None - Remover o método
optionsda lista de clientes do ElasticSearch assíncrono
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.
Novo recurso
Adiciona suporte para tarefas personalizadas no Celery
Adiciona suporte para Graphene-Django
- Adicione suporte de monitoramento para esquemas síncronos criados com Graphene-Django. Anteriormente, esquemas criados com Graphene-Django eram monitorados apenas parcialmente, resultando na ausência de atributos relacionados GraphQL.
Adiciona suporte para filtragem de middleware no Django
Os usuários agora podem filtrar qual middleware Django monitorar. Agora há três configurações adicionais:
instrumentation.middleware.django.enabled(O padrão étrue)instrumentation.middleware.django.excludeinstrumentation.middleware.django.include
Veja a página Filtragem de Middleware do Django para mais informações e exemplos.
Adiciona suporte para a API AWS Bedrock Converse
- Adicione suporte de monitoramento para API Converse não streaming. Isso inclui suporte para
conversechamadas de conclusão de bate-papo feitas usando clientesboto3eaioboto3.
- Adicione suporte de monitoramento para API Converse não streaming. Isso inclui suporte para
Adiciona suporte para o sinalizador de amostra do cabeçalho W3CTraceParent
- Quando um serviço upstream envia o cabeçalho W3CTraceParent com o sinalizador de amostragem definido, o New Relic levará em consideração essa decisão de amostragem ao decidir se a transação atual será amostrada.
Suporte adicionado para decisões de amostragem com base na amostragem do pai remoto
Adicionado suporte para duas novas opções de configuração:
distributed_tracing.sampler.remote_parent_sampleddistributed_tracing.sampler.remote_parent_not_sampled
defaulté o comportamento padrão e se comporta como antes dessa alteração (ele passa a decisão de amostragem para o algoritmo de amostragem adaptável para determinar se a transação será amostrada).always_onsignifica que o trace que tem um pai remoto amostrado ou um pai remoto não amostrado sempre será amostrado.always_offsignifica que o trace que tem um pai remoto amostrado ou um pai remoto não amostrado nunca será amostrado.
Correções de bugs
Adicionar proteção para o caminho único mais profundo em GraphQL
- Alguns usuários estavam enfrentando problemas com o caminho único mais profundo no GraphQL não sendo gerado devido a um nome de campo retornando
None. Este problema foi corrigido.
- Alguns usuários estavam enfrentando problemas com o caminho único mais profundo no GraphQL não sendo gerado devido a um nome de campo retornando
Adicionar proteção para análise de solicitação da web
- Alguns usuários experimentaram um erro de análise quando
request_uriestava malformado ou continha caracteres inválidos. Isso pode acontecer neste ponto se orequest_urino cabeçalho da solicitação for inválido e não corresponder ao URL (válido) fornecido originalmente. Embora essa proteção já tenha sido implementada no New Relic,urllibresolveu esse problema para versões do Python lançadas após 31 de janeiro de 2025.
- Alguns usuários experimentaram um erro de análise quando
Corrigir travamento no ElasticSearch e GraphQL quando
trace.settings==None- Nos casos em que
trace.settingséNone, a instrumentação do ElasticSearch travou o aplicativo. Um fallbackglobal_settingsfoi implementado. Isso também resolve o mesmo problema encontrado no GraphQL.
- Nos casos em que
Remover o método
optionsda lista de clientes do ElasticSearch assíncrono- A instrumentação anterior do ElasticSearch causou uma falha porque
optionsestava na lista de métodos assíncronos. Este método não é mais encapsulado em umDatastoreTracepois não é um método que conduz nenhuma operação/requests de armazenamento de dados.
- A instrumentação anterior do ElasticSearch causou uma falha porque
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 novas funções Redis , converte todos os caminhos internos de os.path para pathlib.Path e corrige um problema com a codificação JSON de PosixPaths.
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.
Novo recurso
Adiciona suporte para novas funções do Redis
- Adicione instrumentação para novas funções do Redis .
Converta todos os caminhos internos de
os.pathparapathlib.Path- Converta todo o uso interno de caminhos baseados em strings e
os.pathparapathlib.Pathem preparação para oferecer suporte a caminhos do Windows.
- Converta todo o uso interno de caminhos baseados em strings e
Correções de bugs
Corrigir problema com codificação JSON PosixPath
- Alguns usuários estavam tendo problemas com a codificação JSON
PosixPathconfigurações de configuração. Este problema foi corrigido.
- Alguns usuários estavam tendo problemas com a codificação JSON
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 oracledb, fixes a bug in Kombu and Kafka where MessageTransaction object has no attribute destination_name, and fixes the disappearance of utilization metadata with AWS.
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 oracledb
- Add instrumentation for oracledb.
Bug fixes
Fix "
MessageTransactionobject has no attributedestination_name" bug- Fix a bug in MessageBroker instrumentations where the serialize methods were looking for the
destination_nameattribute on theMessageTransactionand it did not exist.
- Fix a bug in MessageBroker instrumentations where the serialize methods were looking for the
Fix AWS utilization metadata issue when running AWS and K8s together
- Due to permissions settings in K8s pods running on AWS EC2 instances, the utilization metadata is able to be retrieved the first time. However, if the application is left running continuously, the agent will reconnect and the utilization metadata fails to load. In cases like these, the utilization metadata is cached per agent instance and is able to be retrieved.
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.