Notes
This release of the Python agent adds additional model information to LangChain Chain LLM events, and fixes a bug in LangGraph streaming instrumentation.
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 additional model information to LangChain Chain LLM events
- Add
request.modelandresponse.modelattributes to LLM events produced by LangChain Chains. - This information is pulled on a best effort basis and may not always be available.
- Add
Bugs
Fix TypeError in LangGraph streaming instrumentation
- Previously, when using a subset of streaming APIs in LangGraph, the agent would encounter a
TypeErrordue to the use ofweakref.WeakMethodby LangGraph. This has been fixed, and the agent should now work correctly with those LangGraph streaming methods.
- Previously, when using a subset of streaming APIs in LangGraph, the agent would encounter 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.
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.
Notas
Esta versão do agente Python corrige um problema de propagação de contexto no LangChain e no LangGraph, um problema de gravação de conclusão de chat da OpenAI e um problema ao usar o streaming da OpenAI(https://pypi.org/project/openai) por meio do LiteLLM como proxy.
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.
Bugs
Corrigir a propagação de contexto no LangChain e LangGraph
Corrigir um problema de gravação de chat completion da OpenAI
- OpenAI reintroduziu a lógica que encerra a resposta de streaming mesmo que o consumidor não tenha lido todos os dados. Anteriormente, os dados de chat completion eram registrados apenas ao atingir o final do stream, o que resultava em dados de chat completion não serem registrados no fechamento do stream. Agora foi adicionada uma lógica para capturar os dados de conclusão do chat, mesmo que o stream não tenha sido totalmente lido.
Corrige um problema ao usar o streaming da OpenAI através do LiteLLM como proxy
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 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.