Notes
This release of the Python agent fixes a context propagation issue in LangChain and LangGraph, an OpenAI chat completion recording issue, and an issue when using OpenAI(https://pypi.org/project/openai) streaming through LiteLLM as a proxy.
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.
Bugs
Fix context propagation in LangChain and LangGraph
Fix an OpenAI chat completion recording issue
- OpenAI reintroduced logic that closes the streaming response even if the consumer hasn't read all data. Previously, the chat completion data was only recorded when reaching the stream's end which resulted in chat completion data not being recorded at the closing of the stream. Logic has now been added to capture the chat completion data even if the stream has not been fully read.
Fix an issue when using OpenAI streaming through LiteLLM as a proxy
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 remove o suporte para a função do Lambda do Python no arquivo de configuração, exclui o cabeçalho newrelic por padrão, adiciona suporte para as configurações de exclusão e inclusão para trace do Hybrid Agent, para a instrumentação do anthropic, para o streaming de resposta do gemini, melhora o cache de IS_PYPY em gc_data.py para desempenho e adiciona o atributo http.statusCode em eventos de transação. Esta versão também reenvia módulos durante a reconexão, garantindo que sejam registrados, protege as métricas de coleta de lixo contra chamadas reentrantes, corrige a propagação de tarefas em geradores assíncronos e a propagação de contexto do starlette em StreamingResponse.
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 removido
Remover o suporte a funções do Lambda em Python no arquivo de configuração
- Anteriormente, o agente permitia especificar uma função do Lambda em Python para nomear dinamicamente transações, tarefa em segundo plano, trace de banco de dados, trace de perfil, URL e método de trace externo, trace de função, trace de gerador e trace de memcache. Como o suporte a este recurso expõe uma vulnerabilidade de segurança no agente, este recurso está sendo removido.
Depreciações
- O atributo
response.statusemWebTransactions é considerado obsoleto e será removido na próxima versão 14.0.0. Está sendo substituído porhttp.statusCode. Recomendamos substituir todas as referências aresponse.statusporhttp.statusCode.
Novo recurso
Excluir o cabeçalho
newrelicpor padrão- O cabeçalho
newrelicde distributed tracing não é mais enviado por padrão. Apenas os cabeçalhos W3Ctraceparentetracestateserão enviados.
- O cabeçalho
Adicionar configurações de exclusão e inclusão para traces do Agente Híbrido
opentelemetry.traces.includepara o arquivo de configuração ouNEW_RELIC_OPENTELEMETRY_TRACES_INCLUDEser usado como variável de ambienteopentelemetry.traces.excludepara o arquivo de configuração ouNEW_RELIC_OPENTELEMETRY_TRACES_EXCLUDEser usado como variável de ambiente
O comportamento padrão do agente híbrido também será diferente. Agora, apenas bibliotecas e tracers que são suportados pelo OpenTelemetry, mas que ainda não são suportados pelo New Relic, utilizarão a instrumentação do OpenTelemetry. Caso contrário, o agente usará por padrão os hooks de instrumentação da New Relic.
Mais informações sobre essas configurações podem ser encontradas na página de configuração do agente Python, bem como na página de suporte à API do OpenTelemetry.
Adicionar instrumentação de streaming da Anthropic
- Adiciona suporte de instrumentação para anthropic.
Melhorar o cache de IS_PYPY em gc_data.py para desempenho
Agora verifica e armazena em cache IS_PYPY uma vez quando o módulo é carregado.
Adicionar streaming de resposta do Gemini
- Adicionar suporte a streaming de resposta ao Gemini por meio do pacote google-genai.
Adicionar atributo
http.statusCodea eventos de transação- Para estar em conformidade com os demais agentes de linguagem, o agente Python agora envia o status http para o atributo
WebTransactionhttp.statusCode. O agente Python continuará enviando o atributo pararesponse.statustambém, mas o atributoresponse.statusserá removido no futuro.
- Para estar em conformidade com os demais agentes de linguagem, o agente Python agora envia o status http para o atributo
Bugs
Reenviar módulos durante a reconexão
- O agente anteriormente só enviava a lista de módulos periodicamente após o primeiro ciclo de conexão. Se o agente se reconectasse ao coletor, esses dados não seriam reenviados, portanto a interface não exibiria mais os dados do módulo. O problema já foi resolvido.
Proteger métricas de garbage collection contra chamadas reentrantes
- Adiciona uma flag para evitar chamadas reentrantes para
_GCDataSource.record_gc()para evitar recursão infinita no Python 3.13+.
- Adiciona uma flag para evitar chamadas reentrantes para
Habilitar a propagação de tarefas em geradores assíncronos
- Corrige um problema em que
AsyncGeneratorProxynão tratava corretamente a propagação de contexto de transação se distribuída por várias tarefas.
- Corrige um problema em que
Corrigir a propagação de contexto do Starlette em
StreamingResponse- Adiciona a propagação de contexto do trace ao starlette
StreamingResponsetanto para geradores síncronos quanto assíncronos.
- Adiciona a propagação de contexto do trace ao starlette
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 tempo até o primeiro token e corrige uma assinatura de função add_url_rule incompatível do Flask.
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
Adicionado o tempo até o primeiro token para streams de resposta de LLM:
Correções de bugs
Resolvida a incompatibilidade de assinatura da função
add_url_ruledo Flask- Atualizada a instrumentação do Flask para alinhar a assinatura de sua função
add_url_rulecom a implementação nativa do Flask. Esta correção evita possíveis falhas na aplicação causadas pela incompatibilidade de assinatura anterior.
- Atualizada a instrumentação do Flask para alinhar a assinatura de sua funçã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 remove o suporte para Cross Application Tracing (CAT), Python 3.8 e os certificados SSL empacotados. Também atualiza todos os pacotes de terceiros para suas versões mais recentes e adiciona suporte para CPython free-threaded, sistemas operacionais Windows e instrumentação aprimorada para Microsoft AG2 (Autogen). Além disso, esta versão inclui um novo extra opcional para instalar certificados SSL via certifi. Esta versão também corrige um bug na instrumentação do Strands Agents que fazia com que exceções duplicadas fossem reportadas.
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 removido
O Cross Application Tracing (CAT) foi removido em favor do Rastreamento Distribuído (DT).
- O Cross Application Tracing (CAT) foi descontinuado na versão do agente 7.0.0.166 e foi removido nesta versão. Se você ainda estiver usando o Cross Application Tracing (CAT), recomendamos migrar para o Rastreamento distribuído (DT) o mais rápido possível para evitar interrupções.
Os certificados SSL empacotados foram removidos.
- Se você precisar de certificados para o seu ambiente, pode instalá-los via gerenciador de pacotes do seu sistema operacional ou instalar o agente com o extra opcional
newrelic[certificates].
- Se você precisar de certificados para o seu ambiente, pode instalá-los via gerenciador de pacotes do seu sistema operacional ou instalar o agente com o extra opcional
O suporte ao Python 3.8 foi removido.
- O Python 3.8 atingiu o fim da vida útil em 2024-10-07 e não é mais suportado pelo agente. Por favor, considere atualizar sua aplicação para uma versão suportada do Python para continuar recebendo atualizações do Agente Python.
Segurança
Todos os pacotes internos atualizados para as versões mais recentes.
urllib3atualizado para v2.6.3- Isso corrige todas as CVEs abertas no
urllib3até a data deste lançamento.
- Isso corrige todas as CVEs abertas no
opentelemetry_protoatualizado para v1.40.0wraptatualizado para v2.1.2asgirefatualizado para v3.11.1
Novo recurso
Novo extra
newrelic[certificates]para instalar certificados SSL via certifi.- O agente agora fornece um extra
newrelic[certificates]opcional que pode ser usado para instalar os certificados SSL empacotados. Isso é destinado a usuários que precisam de certificados, mas não conseguem instalá-los via gerenciador de pacotes do sistema operacional.
- O agente agora fornece um extra
Suporte ao CPython free-threaded
- A partir do Python 3.13, o CPython lança builds do Python com o Global Interpreter Lock (GIL) desativado, permitindo multithreading real.
- Esta versão adiciona suporte a esse comportamento, permitindo que o agente seja executado com segurança em um ambiente free-threaded.
- Este lançamento também inclui binários pré-compilados para CPython free-threaded no Linux e Windows, facilitando a instalação nesses ambientes.
Suporte ao Windows
- Esta versão inclui binários pré-compilados para CPython 3.13 ou superior no Windows.
- Observe que o Python 3.12 ou inferior não é oficialmente suportado no Windows devido a grandes variações na resolução dos temporizadores. Ainda é possível instalar e usar o agente a partir do código-fonte, mas os usuários podem enfrentar problemas com dados de tempo imprecisos e devem atualizar para o Python 3.13 ou superior para ter a melhor experiência.
Instrumentação aprimorada para Microsoft AG2 (Autogen)
- Adicionado suporte a respostas de streaming por meio do método gerador assíncrono
on_messages_stream(). - A instrumentação agora inclui um atributo
subcomponentem spans que representam chamadas de ferramenta ou agente. Isso é usado para fornecer um mapeamento de entidades mais aprimorado na interface do New Relic.
- Adicionado suporte a respostas de streaming por meio do método gerador assíncrono
Bugs
Exceções duplicadas no Strands Agents
- Após uma atualização do Strands Agents que encapsula algumas exceções em um novo tipo
EventLoopException, erros duplicados podem ser relatados. Isso foi corrigido e o erro subjacente deve ser reportado apenas uma vez.
- Após uma atualização do Strands Agents que encapsula algumas exceções em um novo tipo
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 a trace/span para o Agente Híbrido, a integração da New Relic com o OpenTelemetry. Também adiciona GUIDs de entidade aos arquivos de verificação de integridade do Agent Control, atributos subcomponent à instrumentação de IA agêntica, suporte a novos métodos de cliente Redis, corrige um bug onde pode haver instâncias duplicadas do ImportHookFinder e um bug na instrumentação do OracleDB Cursor.callproc().
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 ao rastreamento do Agente Híbrido
O Hybrid Agent foi projetado para preencher a lacuna para equipes que buscam adotar os padrões OpenTelemetry, mantendo a retrocompatibilidade com seus dashboards existentes do New Relic. O Hybrid Agent oferece uma experiência do "melhor dos dois mundos" ao combinar a visibilidade profunda da New Relic com a compatibilidade da API OpenTelemetry. Fornece uma solução de observabilidade com suporte integrado para as seguintes APIs do OpenTelemetry:
- Rastreamento
- Instrumentação de biblioteca autônoma e framework nativo
Principais melhorias como Span Links e Events on Spans estão agora disponíveis, garantindo interoperabilidade perfeita em ambientes de modo misto.
Introduz um novo amostrador baseado na proporção de Trace ID
- Um novo amostrador baseado na proporção de Trace ID. Este algoritmo de amostragem baseia-se no amostrador de mesmo nome do OpenTelemetry e pode ser configurado para amostrar uma porcentagem definida de transações.
Adicionar
subcomponentatributos à instrumentação de IA agênticaAdicionar o GUID da entidade aos arquivos de verificação de integridade do Agent Control
- Quando o agente é iniciado em um ambiente de Controle do Agente, um arquivo de verificação de integridade é criado no local de arquivo configurado para cada processo do agente. Este arquivo agora inclui o GUID da entidade relacionada ao agente quando disponível.
Adicionar instrumentação para novos métodos do Redis
Adicione instrumentação para os seguintes novos métodos nos clientes Redis:
- hotkeys_get
- redefinir_atalhos
- hotkeys_start
- Parar teclas de atalho
- vrange
- xcfgset
Bugs
Corrigir instâncias duplicadas do ImportHookFinder
- Anteriormente, era possível que duplicatas do localizador de gancho de importação fossem adicionadas a
sys.meta_path.
- Anteriormente, era possível que duplicatas do localizador de gancho de importação fossem adicionadas a
Corrigir assinatura incorreta no OracleDB
Cursor.callproc()- Anteriormente, tentar usar argumentos nomeados com
Cursor.callproc()causava falhas, pois os nomes dos argumentos estavam incorretos em nossa instrumentação. Isso foi corrigido, e o argumento adicionalkeyword_parametersagora também é suportado.
- Anteriormente, tentar usar argumentos nomeados com
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 LangGraph agents.
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 LangGraph agents
- Adds instrumentation for LangGraph agent invocations via
create_agent()in LangChain. This includes agent calls toinvoke(),ainvoke(),stream(), andastream().
- Adds instrumentation for LangGraph agent invocations via
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.