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 versión del agente de Python elimina el soporte para la función Lambda de Python en el archivo de configuración, excluye el encabezado newrelic de forma predeterminada, agrega soporte para las configuraciones de exclusión e inclusión para las trazas del agente híbrido, la instrumentación de anthropic, la transmisión de respuestas de gemini, mejora el almacenamiento en caché de IS_PYPY en gc_data.py para el rendimiento y agrega el atributo http.statusCode en los eventos de transacción. Esta versión también reenvía módulos durante la reconexión asegurando que se registren, protege las métricas de recolección de basura contra llamadas reentrantes, corrige la propagación de tareas en generadores asíncronos y la propagación del contexto de starlette en StreamingResponse.
Instale el agente usando easy_install/pip/distribute a través del Índice de paquetes de Python, usando conda a través del Índice de paquetes de Conda-Forge, o descárguelo directamente desde el sitio de descargas de New Relic.
Característica eliminada
Eliminar el soporte para las funciones Lambda de Python en el archivo de configuración
- Anteriormente, el agente permitía especificar una función Lambda de Python para nombrar dinámicamente transacciones, tarea en segundo plano, traza de base de datos, traza de perfil, URL y método de traza externa, traza de función, traza de generador y traza de memcache. Dado que el soporte para esta característica expone una vulnerabilidad de seguridad en el agente, esta característica se está eliminando.
Desusos
- El atributo
response.statusenWebTransactions se considera obsoleto y se eliminará en la próxima versión 14.0.0. Está siendo reemplazado porhttp.statusCode. Recomendamos reemplazar todas las referencias aresponse.statusporhttp.statusCode.
Nueva característica
Excluir el encabezado
newrelicpor defecto- El encabezado de rastreo distribuido
newrelicya no se envía por defecto. Solo se enviarán los encabezadostraceparentytracestatede W3C.
- El encabezado de rastreo distribuido
Agregar configuraciones de exclusión e inclusión para las trazas del agente híbrido
opentelemetry.traces.includepara el archivo de configuración oNEW_RELIC_OPENTELEMETRY_TRACES_INCLUDEpara usarse como variable de entornoopentelemetry.traces.excludepara el archivo de configuración oNEW_RELIC_OPENTELEMETRY_TRACES_EXCLUDEpara usarse como variable de entorno
El comportamiento predeterminado del agente híbrido también será diferente. Ahora, solo las bibliotecas y los rastreadores compatibles con OpenTelemetry pero que aún no son compatibles con New Relic utilizarán la instrumentación de OpenTelemetry. De lo contrario, el agente utilizará por defecto los hooks de instrumentación de New Relic.
Puede encontrar más información sobre estos ajustes en la página de configuración del agente de Python, así como en la página de soporte de la API de OpenTelemetry.
Agrega instrumentación de streaming de Anthropic
- Agrega soporte de instrumentación para anthropic.
Mejorar el almacenamiento en caché de IS_PYPY en gc_data.py para un mejor rendimiento
Ahora verifica y almacena en caché IS_PYPY una vez cuando se carga el módulo.
Agregar transmisión de respuestas de Gemini
- Agrega soporte para streaming de respuestas a Gemini a través del paquete google-genai.
Agregar el atributo
http.statusCodea los eventos de transacción- Para estar en conformidad con el resto de los agentes de lenguaje, el agente de Python ahora envía el estado http al atributo
WebTransactionhttp.statusCode. El agente de Python continuará enviando el atributo aresponse.statustambién, pero el atributoresponse.statusse eliminará en el futuro.
- Para estar en conformidad con el resto de los agentes de lenguaje, el agente de Python ahora envía el estado http al atributo
Errores
Reenviar módulos durante la reconexión
- El agente anteriormente solo enviaba la lista de módulos periódicamente después del primer ciclo de conexión. Si el agente se reconectara al recolector, estos datos no se volverían a enviar, por lo que la UI ya no mostraría los datos del módulo. Esto ya fue solucionado.
Proteger las métricas de recolección de basura contra llamadas reentrantes
- Agrega un indicador para evitar llamadas reentrantes a
_GCDataSource.record_gc()y prevenir la recursión infinita en Python 3.13+.
- Agrega un indicador para evitar llamadas reentrantes a
Habilitar la propagación de tareas en generadores asíncronos
- Soluciona un problema en el que
AsyncGeneratorProxyno manejaba correctamente la propagación del contexto de la transacción si se distribuía en varias tareas.
- Soluciona un problema en el que
Corregir la propagación del contexto de Starlette en
StreamingResponse- Agrega la propagación del contexto de traza a starlette
StreamingResponsetanto para generadores sincrónicos como asincrónicos.
- Agrega la propagación del contexto de traza a starlette
Declaración de apoyo
Recomendamos actualizar a la última versión del agente tan pronto como esté disponible. Si no puede actualizar a la última versión, actualice su agente a una versión que no tenga más de 90 días de antigüedad. Obtenga más información sobre cómo mantener al agente actualizado.
Consulte la New Relic Python política de fin de vida del agente para obtener información sobre los lanzamientos del agente y las fechas de soporte.
Notas
Esta versión del agente de Python agrega soporte para el tiempo hasta el primer token y corrige una firma incompatible de la función add_url_rule de Flask.
Instale el agente usando easy_install/pip/distribute a través del Índice de paquetes de Python, usando conda a través del Índice de paquetes de Conda-Forge, o descárguelo directamente desde el sitio de descargas de New Relic.
Nueva característica
Se agregó el tiempo hasta el primer token para los flujos de respuesta de LLM:
Correcciones de errores
Se resolvió la incompatibilidad en la firma de la función
add_url_rulede Flask- Se actualizó la instrumentación de Flask para alinear la firma de su función
add_url_rulecon la implementación nativa de Flask. Esta corrección evita posibles caídas de la aplicación causadas por la discrepancia de firmas anterior.
- Se actualizó la instrumentación de Flask para alinear la firma de su función
Declaración de apoyo
Recomendamos actualizar a la última versión del agente tan pronto como esté disponible. Si no puede actualizar a la última versión, actualice su agente a una versión que no tenga más de 90 días de antigüedad. Obtenga más información sobre cómo mantener al agente actualizado.
Consulte la New Relic Python política de fin de vida del agente para obtener información sobre los lanzamientos del agente y las fechas de soporte.
Notas
Esta versión del agente de Python elimina el soporte para Cross Application Tracing (CAT), Python 3.8 y los certificados SSL incluidos. También actualiza todos los paquetes vendored a sus últimas versiones y agrega soporte para CPython free-threaded, sistemas operativos Windows e instrumentación mejorada para Microsoft AG2 (Autogen). Además, esta versión incluye un nuevo extra opcional para instalar certificados SSL a través de certifi. Esta versión también corrige un error en la instrumentación de Strands Agents que causaba que se reportaran excepciones duplicadas.
Instale el agente usando easy_install/pip/distribute a través del Índice de paquetes de Python, usando conda a través del Índice de paquetes de Conda-Forge, o descárguelo directamente desde el sitio de descargas de New Relic.
Característica eliminada
El rastreo entre aplicaciones (CAT) se ha eliminado en favor del rastreo distribuido (DT).
- Cross Application Tracing (CAT) quedó obsoleto en la versión del agente 7.0.0.166 y se eliminó en esta versión. Si aún utiliza Cross Application Tracing (CAT), le recomendamos migrar a Distributed Tracing (DT) lo antes posible para evitar interrupciones.
Los certificados SSL incluidos han sido eliminados.
- Si requiere certificados para su entorno, puede instalarlos mediante el administrador de paquetes de su sistema operativo o instalar el agente con el extra opcional
newrelic[certificates].
- Si requiere certificados para su entorno, puede instalarlos mediante el administrador de paquetes de su sistema operativo o instalar el agente con el extra opcional
Se ha eliminado el soporte para Python 3.8.
- Python 3.8 llegó al final de su vida útil el 2024-10-07 y ya no es compatible con el agente. Considere actualizar su aplicación a una versión compatible de Python para continuar recibiendo actualizaciones del Agente de Python.
Seguridad
Todos los paquetes internos se actualizaron a sus últimas versiones.
urllib3actualizado a la v2.6.3- Esto corrige todos los CVE abiertos en
urllib3a la fecha de este lanzamiento.
- Esto corrige todos los CVE abiertos en
opentelemetry_protoactualizado a v1.40.0wraptactualizado a v2.1.2asgirefactualizado a v3.11.1
Nueva característica
Nuevo extra
newrelic[certificates]para instalar certificados SSL mediante certifi.- El agente ahora proporciona un extra
newrelic[certificates]opcional que se puede utilizar para instalar los certificados SSL incluidos. Esto está destinado a usuarios que requieren certificados pero no pueden instalarlos a través del administrador de paquetes de su sistema operativo.
- El agente ahora proporciona un extra
Soporte para CPython de hilos libres
- A partir de Python 3.13, CPython lanza compilaciones de Python con el Bloqueo Global del Intérprete (GIL) deshabilitado, lo que permite un verdadero multihilo.
- Esta versión agrega soporte para este comportamiento, permitiendo que el agente se ejecute de forma segura en un entorno de subprocesos libres.
- Esta versión también incluye binarios precompilados para CPython de subprocesos libres en Linux y Windows, lo que permite una fácil instalación en estos entornos.
Soporte de Windows
- Esta versión incluye binarios precompilados para CPython 3.13 o superior en Windows.
- Tenga en cuenta que Python 3.12 o inferior no es compatible oficialmente en Windows debido a grandes variaciones en la resolución de los temporizadores. Todavía es posible instalar y usar el agente desde el código fuente, pero los usuarios pueden experimentar problemas con datos de temporización inexactos y deben actualizar a Python 3.13 o superior para obtener la mejor experiencia.
Instrumentación mejorada para Microsoft AG2 (Autogen)
- Se agregó soporte para la transmisión de respuestas mediante el método generador asincrónico
on_messages_stream(). - La instrumentación ahora incluye un atributo
subcomponenten los spans que representan llamadas de herramientas o agentes. Esto se utiliza para proporcionar un mapeo de entidades mejorado en la UI de New Relic.
- Se agregó soporte para la transmisión de respuestas mediante el método generador asincrónico
Errores
Excepciones duplicadas en Strands Agents
- Después de una actualización de Strands Agents que encapsula algunas excepciones en un nuevo tipo
EventLoopException, se podrían reportar errores duplicados. Esto se ha corregido y el error subyacente solo debe reportarse una vez.
- Después de una actualización de Strands Agents que encapsula algunas excepciones en un nuevo tipo
Declaración de apoyo
Recomendamos actualizar a la última versión del agente tan pronto como esté disponible. Si no puede actualizar a la última versión, actualice su agente a una versión que no tenga más de 90 días de antigüedad. Obtenga más información sobre cómo mantener al agente actualizado.
Consulte la New Relic Python política de fin de vida del agente para obtener información sobre los lanzamientos del agente y las fechas de soporte.
Notas
Esta versión del agente de Python agrega soporte para trazas/spans para el Agente híbrido, la integración de New Relic con OpenTelemetry. También agrega GUID de entidad a los archivos de verificación de estado de Agent Control, atributos subcomponent a la instrumentación de IA agéntica, soporte para nuevos métodos de cliente Redis, corrige un error donde puede haber instancias duplicadas de ImportHookFinder y un error en la instrumentación Cursor.callproc() de OracleDB.
Instale el agente usando easy_install/pip/distribute a través del Índice de paquetes de Python, usando conda a través del Índice de paquetes de Conda-Forge, o descárguelo directamente desde el sitio de descargas de New Relic.
Característica
Agregar soporte de rastreo para el Agente Híbrido
Hybrid Agent está diseñado para cerrar la brecha para los equipos que buscan adoptar los estándares de OpenTelemetry, manteniendo la compatibilidad con versiones anteriores de sus dashboards de New Relic existentes. Hybrid Agent ofrece una experiencia de "lo mejor de ambos mundos" al combinar la visibilidad profunda de New Relic con la compatibilidad con la API de OpenTelemetry. Proporciona una solución de observabilidad con soporte integrado para las siguientes API de OpenTelemetry:
- Rastreo
- Instrumentación de biblioteca independiente y framework nativo
Mejoras clave como Span Links y Events on Spans ya están disponibles, asegurando una interoperabilidad sin fisuras en entornos de modo mixto.
Introduce un nuevo muestreador basado en la proporción de Trace ID
- Un nuevo muestreador basado en la proporción de Trace ID. Este algoritmo de muestreo se basa en el muestreador del mismo nombre de OpenTelemetry y se puede configurar para muestrear un porcentaje establecido de transacciones.
Agregar
subcomponentatributos a la instrumentación de IA agénticaAgregar el GUID de la entidad a los archivos de verificación de estado de Agent Control
- Cuando se inicia el agente dentro de un entorno de Agent Control, se crea un archivo de comprobación de estado en la ubicación de archivo configurada para cada proceso del agente. Este archivo ahora incluye el GUID de la entidad relacionada con el agente cuando esté disponible.
Agregar instrumentación para nuevos métodos de Redis
Agregue instrumentación para los siguientes nuevos métodos en los clientes de Redis:
- hotkeys_get
- Restablecer atajos
- inicio_atajos
- hotkeys_stop
- vrange
- xcfgset
Errores
Corregir instancias duplicadas de ImportHookFinder
- Anteriormente, era posible que se agregaran duplicados del buscador de ganchos de importación a
sys.meta_path.
- Anteriormente, era posible que se agregaran duplicados del buscador de ganchos de importación a
Corregir la firma incorrecta en OracleDB
Cursor.callproc()- Anteriormente, intentar usar argumentos de palabra clave con
Cursor.callproc()causaba fallos, ya que los nombres de los argumentos eran incorrectos en nuestra instrumentación. Esto se ha corregido, y el argumento adicionalkeyword_parametersahora también es compatible.
- Anteriormente, intentar usar argumentos de palabra clave con
Declaración de apoyo
Recomendamos actualizar a la última versión del agente tan pronto como esté disponible. Si no puede actualizar a la última versión, actualice su agente a una versión que no tenga más de 90 días de antigüedad. Obtenga más información sobre cómo mantener al agente actualizado.
Consulte la New Relic Python política de fin de vida del agente para obtener información sobre los lanzamientos del agente y las fechas de soporte.
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.