Notes
This release of the Python agent provides fixes for early activation in Django instrumentation, server side overrides for max_samples_stored
being ignored, and guards against crashes from trace_cache.pop()
.
Install the agent using easy_install/pip/distribute
via the Python Package Index or download it directly from the New Relic download site.
Bug fixes
Prevents early activation in Django instrumentation
- Remove calls to
application_settings()
in Django instrumentation to prevent issues with early activations in pre-fork applications.
- Remove calls to
Fix server configuration to local configuration sync issues
- This fixes a bug created when
event_harvest_config.harvest_limits.*
settings were deprecated in favor of*.max_samples_stored
settings. Some server side configurations were not overriding the client side configurations, resulting in data being sent to the collector despite the user disabling this.
- This fixes a bug created when
Guard against crashes from
trace_cache.pop()
- In the
ContextOf
class, there was an unsafe access of thetrace_cache
viapop(key)
without a default value. This caused crashes when theweakref
in the dictionary was already garbage collected.
- In the
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
Cuidado
This version of the agent has been withdrawn.
This release of the Python agent makes the following changes:
- Removes support for Python 3.7
- Removes and or deprecates various APIs and settings
- Deprecates aioredis instrumentation
- Raises the minimum supported version of
setuptools
andsetuptools_scm
- Adds new instrumentation for AutoGen
- Adds new instrumentation for Pyzeebe
- Adds new MCP (Model Context Protocol) named spans
- Fixes a crash in psycopg
- Ensures MCP spans are only recorded when AI monitoring is enabled
Install the agent using easy_install/pip/distribute
via the Python Package Index or download it directly from the New Relic download site.
Removed features
Removes support for Python 3.7
- Python 3.7 was EOL'd June 27, 2023. The Python agent has dropped support for it.
Removes various deprecated APIs
The following APIs have been removed:
Legacy API Replacement API accept_distributed_trace_payload
accept_distributed_trace_headers
add_custom_parameter
add_custom_attribute
add_custom_parameters
add_custom_attributes
create_distributed_trace_payload
insert_distributed_trace_headers
get_browser_timing_footer
The functionality of this has been wrapped into get_browser_timing_header()
record_exception
notice_error()
NewRelicLogHandler
NewRelicLogForwardingHandler
lambda_handler
&LambdaHandlerWrapper
These APIs have moved to the newrelic-lambda
package.
Removes various deprecated settings
The following settings have been removed:
Legacy Setting Replacement Setting transaction_tracer.capture_attributes
transaction_tracer.attributes.enabled
error_collector.capture_attributes
error_collector.attributes.enabled
browser_monitoring.capture_attributes
browser_monitoring.attributes.enabled
analytics_events.enabled
transaction_events.enabled
analytics_events.capture_attributes
transaction_events.attributes.enabled
error_collector.ignore_errors
error_collector.ignore_classes
strip_exception_messages.whitelist
strip_exception_messages.allowlist
ssl
This is now hardcoded to true
so it has been removed as a setting option.ignored_params
Use newrelic.attributes.exclude = request.parameters.{name}
instead. Add each request parameter key to thenewrelic.attributes.exclude
list, delimited by commas. Be sure to prepend the key withrequest.parameters
.agent_limits.merge_stats_maximum
This is now completely ignored in favor of serverside config.
Deprecated features
Instrumentation for aioredis has been deprecated
Deprecates some existing harvest settings to match other language agents
In order to be more consistent with the conventions of the other language agents, the following harvest settings are now deprecated:
Legacy Setting Replacement Setting event_harvest_config.harvest_limits.analytic_event_data
transaction_events.max_samples_stored
event_harvest_config.harvest_limits.span_event_data
span_events.max_samples_stored
event_harvest_config.harvest_limits.error_event_data
error_collector.max_event_samples_stored
event_harvest_config.harvest_limits.custom_event_data
custom_insights_events.max_samples_stored
event_harvest_config.harvest_limits.log_event_data
application_logging.forwarding.max_samples_stored
This is a revert of a previous change that renamed these settings from
*.max_samples_stored
to theevent_harvest_config.harvest_limits.*
form. This decision has been reversed, and the original settings named have been restored to match the other language agents who did not change these settings names. The deprecated settings will continue to work for now, but they will be removed in a future release.
Deprecates configuration of the agent through the WSGI environ dictionary
The following settings which were previously possible to configure through the WSGI environ dictionary are now deprecated. Please configure these settings through environment variables or the config file.
newrelic.set_background_task
newrelic.suppress_apdex_metric
newrelic.suppress_transaction_trace
newrelic.capture_request_params
newrelic.disable_browser_autorum
Deprecates support for building the agent with
setuptools<61.2
orsetuptools_scm<6.4
- The minimum supported versions of
setuptools
andsetuptools_scm
have been increased to61.2
and6.4
respectively. This is to support the use ofpyproject.toml
for configuring the package metadata and building instructions. The agent can now be built with more modern build tools which will no longer log warnings about the lack of apyproject.toml
file. - This change adds new version attributes to the packages,
newrelic.__version__
andnewrelic.__version_tuple__
, which can be used to programmatically check the version of the agent at runtime.
- The minimum supported versions of
New features
Adds new instrumentation for AutoGen
- Adds instrumentation (named spans and custom
Llm
events) for agents and tools in AutoGen
- Adds instrumentation (named spans and custom
Adds new instrumentation for Pyzeebe
- Adds automatic instrumentation and framework-specific agent attributes for Pyzeebe
Adds new MCP (Model Context Protocol) named spans
- Adds new named spans for MCP (Model Context Protocol) tool calls made via tool manager to support Streamable HTTP
Bug fixes
Fixes a crash in
psycopg>=3.2.0
when callingas_string()
- Fixes an issue in
psycopg>=3.2.0
where theas_string()
method no longer required arguments, causing a potential crash. This has been fixed, and both signatures of this method are supported.
- Fixes an issue in
Ensures MCP (Model Context Protocol) spans are only recorded when AI monitoring is enabled
- Ensures MCP (Model Context Protocol) spans are only recorded when the setting
ai_monitoring.enabled
is enabled.
- Ensures MCP (Model Context Protocol) spans are only recorded when the setting
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:
- 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
options
da 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.exclude
instrumentation.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
converse
chamadas de conclusão de bate-papo feitas usando clientesboto3
eaioboto3
.
- 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_sampled
distributed_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_on
significa que o trace que tem um pai remoto amostrado ou um pai remoto não amostrado sempre será amostrado.always_off
significa 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_uri
estava malformado ou continha caracteres inválidos. Isso pode acontecer neste ponto se orequest_uri
no 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,urllib
resolveu 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_settings
foi implementado. Isso também resolve o mesmo problema encontrado no GraphQL.
- Nos casos em que
Remover o método
options
da lista de clientes do ElasticSearch assíncrono- A instrumentação anterior do ElasticSearch causou uma falha porque
options
estava na lista de métodos assíncronos. Este método não é mais encapsulado em umDatastoreTrace
pois 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.path
parapathlib.Path
- Converta todo o uso interno de caminhos baseados em strings e
os.path
parapathlib.Path
em 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
PosixPath
configuraçõ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.
Notas
Esta versão do agente Python adiciona suporte para oracledb, corrige um bug no Kombu e no Kafka onde o objeto MessageTransaction
não tem atributo destination_name
e corrige o desaparecimento de metadados de utilização com a AWS.
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 oracledb
- Adicione instrumentação para oracledb.
Correções de bugs
Corrigir o bug "
MessageTransaction
objeto não tem atributodestination_name
"- Corrige um bug na instrumentação do MessageBroker onde os métodos de serialização estavam procurando o atributo
destination_name
noMessageTransaction
e ele não existia.
- Corrige um bug na instrumentação do MessageBroker onde os métodos de serialização estavam procurando o atributo
Corrigir problema de metadados de utilização da AWS ao executar AWS e K8s juntos
- Devido às configurações de permissões no pod K8s em execução em instâncias do EC2 da AWS, o cache de utilização pode ser recuperado na primeira vez. Entretanto, se o aplicativo for deixado em execução continuamente, o agente será reconectado e os metadados de utilização não serão carregados. Em casos como esses, os metadados de utilização são armazenados em cache por instância do agente e podem ser recuperados.
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 Azure Function Apps e protobuf v6.
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 aplicativos de Azure Function
- Adiciona suporte para aplicativos de Azure Function para tipos HTTPTrigger.
Correções de bugs
Adiciona arquivos pb2 para habilitar o suporte ao protobuf v6
- Anteriormente, vários pacotes do Google não eram compatíveis com o New Relic devido à falta de suporte ao protobuf v6. Isso já foi resolvido.
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.