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 versión del agente Python proporciona correcciones para la activación temprana en la instrumentación de Django, anulaciones del lado del servidor para max_samples_stored que se ignoran y protección contra fallas de trace_cache.pop().
Instale el agente usando easy_install/pip/distribute a través del Índice de paquetes de Python o descárguelo directamente del sitio de descarga de New Relic.
Corrección de errores
Previene la activación temprana en la instrumentación de Django
- Eliminar llamadas a
application_settings()en la instrumentación Django para evitar problemas con activaciones tempranas en aplicaciones pre-fork.
- Eliminar llamadas a
Solucionar problemas de sincronización de la configuración del servidor con la configuración local
- Esto corrige un error creado cuando las configuraciones
event_harvest_config.harvest_limits.*quedaron obsoletas en favor de las configuraciones*.max_samples_stored. Algunas configuraciones del lado del servidor no anulaban la configuración del lado del cliente, lo que provocaba que los datos se enviaran al recopilador a pesar de que el usuario lo deshabilitara.
- Esto corrige un error creado cuando las configuraciones
Proteger contra accidentes por
trace_cache.pop()- En la clase
ContextOf, hubo un acceso inseguro detrace_cachea través depop(key)sin un valor predeterminado. Esto provocó fallos cuando elweakrefen el diccionario ya fue recolectado como basura.
- En la clase
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
Advertencia
Esta versión del agente fue retirada.
Esta versión del agente Python realiza los siguientes cambios:
- Elimina la compatibilidad con Python 3.7
- Elimina o desaprueba varias API y configuraciones
- Se desestima la instrumentación aioredis
- Aumenta la versión mínima compatible de
setuptoolsysetuptools_scm - Agrega nueva instrumentación para AutoGen
- Agrega nueva instrumentación para Pyzeebe
- Agrega nuevos intervalos con nombre MCP (Protocolo de contexto de modelo)
- Corrige un fallo en psycopg
- Garantiza que los intervalos de MCP solo se registren cuando el monitoreo de IA está habilitado
Instale el agente usando easy_install/pip/distribute a través del Índice de paquetes de Python o descárguelo directamente del sitio de descarga de New Relic.
Característica eliminada
Elimina la compatibilidad con Python 3.7
- Python 3.7 finalizó su vida útil el 27 de junio de 2023. El agente de Python dejó de brindar soporte para este.
Elimina varias API obsoletas
Se eliminaron las siguientes API:
APIheredada API de reemplazo accept_distributed_trace_payloadaccept_distributed_trace_headersadd_custom_parameteradd_custom_attributeadd_custom_parametersadd_custom_attributescreate_distributed_trace_payloadinsert_distributed_trace_headersget_browser_timing_footerLa funcionalidad de esto se incluyó en get_browser_timing_header()record_exceptionnotice_error()NewRelicLogHandlerNewRelicLogForwardingHandlerlambda_handler&LambdaHandlerWrapperEstas API se trasladaron al paquete newrelic-lambda.
Elimina varias configuraciones obsoletas
Se eliminaron las siguientes configuraciones:
Configuración heredada Ajuste de reemplazo 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.allowlistsslEsto ahora está codificado en true, por lo que se eliminó como opción de configuración.ignored_paramsEmplee newrelic.attributes.exclude = request.parameters.{name}en su lugar. Agregue cada clave de parámetro de solicitud a la listanewrelic.attributes.exclude, delimitada por comas. Cerciorar de anteponerrequest.parametersa la clave.agent_limits.merge_stats_maximumEsto ahora se ignora por completo en favor de la configuración del lado del servidor.
Característica obsoleta
La instrumentación para aioredis quedó obsoleta
Desestima algunas configuraciones de recolección existentes para que coincidan con otros agentes de idiomas
Para ser más coherentes con las convenciones del otro agente de idioma, las siguientes configuraciones de recolección ahora están obsoletas:
Configuración heredada Ajuste de reemplazo 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_storedEsto es una reversión de un cambio anterior que renombró estas configuraciones del formato
*.max_samples_storedal formatoevent_harvest_config.harvest_limits.*. Se revirtió esta decisión y se restauraron las configuraciones originales nombradas para que coincidan con el otro agente de idioma que no cambió los nombres de estas configuraciones. Las configuraciones obsoletas seguirán funcionando por ahora, pero se eliminarán en una versión futura.
Desaprobó la configuración del agente a través del diccionario de entorno WSGI
Las siguientes configuraciones que antes se podían configurar a través del diccionario de entorno WSGI ahora están obsoletas. Configure estos ajustes a través de las variables de entorno o el archivo de configuración.
newrelic.set_background_tasknewrelic.suppress_apdex_metricnewrelic.suppress_transaction_tracenewrelic.capture_request_paramsnewrelic.disable_browser_autorum
Se desaprueba la compatibilidad con la creación del agente con
setuptools<61.2osetuptools_scm<6.4- Las versiones mínimas admitidas de
setuptoolsysetuptools_scmse aumentaron a61.2y6.4respectivamente. Esto es para respaldar el uso depyproject.tomlpara configurar los metadatos del paquete y las instrucciones de construcción. El agente ahora se puede construir con herramientas de construcción más modernas que ya no registrarán advertencias sobre la falta de un archivopyproject.toml. - Este cambio agrega un nuevo atributo de versión a los paquetes,
newrelic.__version__ynewrelic.__version_tuple__, que se pueden usar para verificar programáticamente la versión del agente en tiempo de ejecución.
- Las versiones mínimas admitidas de
Nueva característica
Agrega nueva instrumentación para AutoGen
- Agrega instrumentación (spans con nombre y eventos
Llmpersonalizados) para agentes y herramientas en AutoGen
- Agrega instrumentación (spans con nombre y eventos
Agrega nueva instrumentación para Pyzeebe
- Agrega instrumentación automática y atributo de agente específico frameworkpara Pyzeebe.
Agrega nuevos intervalos con nombre MCP (Protocolo de contexto de modelo)
- Agrega nuevos intervalos con nombre para las llamadas a la herramienta MCP (Protocolo de contexto de modelo) realizadas a través del administrador de herramientas para admitir HTTP transmitible
Corrección de errores
Corrige un fallo en
psycopg>=3.2.0al llamaras_string()- Corrige un problema en
psycopg>=3.2.0donde el métodoas_string()ya no requería argumentos, lo que causaba un posible bloqueo. Esto se solucionó y ahora se admiten ambas firmas de este método.
- Corrige un problema en
Garantiza que los intervalos de MCP (Protocolo de contexto de modelo) solo se registren cuando el monitoreo de IA está habilitado
- Garantiza que los intervalos MCP (Protocolo de contexto de modelo) solo se registren cuando la configuración
ai_monitoring.enabledestá habilitada.
- Garantiza que los intervalos MCP (Protocolo de contexto de modelo) solo se registren cuando la configuració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 Python agrega soporte para lo siguiente:
- Tareas personalizadas en Celery
- Monitoreo de Graphene-Django
- Filtrado de middleware en Django
- API de AWS Bedrock Converse
- Bandera muestreada del encabezado W3CTraceParent
Esta versión también proporciona las siguientes correcciones:
- Salvaguardias para la ruta única más profunda en GraphQL
- Medidas de seguridad para el análisis de solicitudes de URL sitio web
- Respaldo para ElasticSearch y GraphQL cuando
trace.settings==None - Eliminar el método
optionsde la lista de clientes de ElasticSearch asíncronos
Instale el agente usando easy_install/pip/distribute a través del Índice de paquetes de Python o descárguelo directamente del sitio de descarga de New Relic.
Nueva característica
Agrega soporte para tareas personalizadas en Celery
Agrega soporte para Graphene-Django
- Agregue soporte de monitoreo para esquemas sincrónicos creados con Graphene-Django. Anteriormente, los esquemas creados con Graphene-Django solo se monitoreaban parcialmente, lo que generaba que faltaran atributos relacionados con GraphQL.
Agrega soporte para filtrado de middleware en Django
Los usuarios ahora pueden filtrar qué middleware Django monitorear. Ahora hay tres configuraciones adicionales:
instrumentation.middleware.django.enabled(El valor predeterminado estrue)instrumentation.middleware.django.excludeinstrumentation.middleware.django.include
Consulte la página de filtrado de middleware de Django para obtener más información y ejemplos.
Agrega soporte para la API de AWS Bedrock Converse
- Agregue soporte de monitoreo para la API de Converse que no es de transmisión. Esto incluye soporte para
conversellamadas de finalización de chat realizadas empleando clientesboto3yaioboto3.
- Agregue soporte de monitoreo para la API de Converse que no es de transmisión. Esto incluye soporte para
Agrega compatibilidad con el indicador muestreado del encabezado W3CTraceParent
- Cuando un servicio ascendente envía el encabezado W3CTraceParent con el indicador de ejemplificación establecido, New Relic tendrá en cuenta esa decisión de ejemplificación al decidir si se muestreará la transacción actual.
Se agregó soporte para tomar decisiones de ejemplificación en función de si el padre remoto está muestreado
Se agregó soporte para dos nuevas opciones de configuración:
distributed_tracing.sampler.remote_parent_sampleddistributed_tracing.sampler.remote_parent_not_sampled
defaultes el comportamiento predeterminado y se comporta como lo hacía antes de este cambio (pasa la decisión de ejemplificación al algoritmo de ejemplificación adaptativa para determinar si se muestreará la transacción).always_onsignifica que la traza que tiene un padre remoto muestreado o un padre remoto no muestreado siempre será muestreada.always_offsignifica que la traza que tiene un padre remoto muestreado o un padre remoto no muestreado nunca será muestreado.
Corrección de errores
Agregar protección para la ruta única más profunda en GraphQL
- Algunos usuarios estaban experimentando problemas con la ruta única más profunda en GraphQL que no se generaba debido a que un nombre de campo devolvía
None. Este problema fue solucionado.
- Algunos usuarios estaban experimentando problemas con la ruta única más profunda en GraphQL que no se generaba debido a que un nombre de campo devolvía
Agregar protección para el análisis de solicitudes sitio web
- Algunos usuarios experimentaron un error de análisis cuando
request_uriestaba mal formado o contenía caracteres no válidos. Esto puede suceder en este punto si elrequest_urien el encabezado de la solicitud no es válido y no coincide con la URL (válida) proporcionada originalmente. Si bien esta protección ya se implementó en New Relic,urllibresolvió este problema para las versiones de Python lanzadas luego del 31 de enero de 2025.
- Algunos usuarios experimentaron un error de análisis cuando
Se solucionó el fallo en ElasticSearch y GraphQL cuando
trace.settings==None- En los casos donde
trace.settingsesNone, la instrumentación de ElasticSearch hizo que la aplicación fallara. Se implementó un respaldoglobal_settings. Esto también resuelve el mismo problema encontrado en GraphQL.
- En los casos donde
Eliminar el método
optionsde la lista de clientes de ElasticSearch asíncronos- La instrumentación anterior de ElasticSearch provocó un bloqueo porque
optionsestaba en la lista de métodos asincrónicos. Este método ya no está envuelto en unDatastoreTraceya que no es uno que realice ninguna operación/requests de almacenamiento de datos.
- La instrumentación anterior de ElasticSearch provocó un bloqueo porque
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 Python agrega soporte para nuevas funciones de Redis , convierte todas las rutas internas de os.path a pathlib.Path y corrige un problema con la codificación JSON de PosixPaths.
Instale el agente usando easy_install/pip/distribute a través del Índice de paquetes de Python o descárguelo directamente del sitio de descarga de New Relic.
Nueva característica
Agrega soporte para nuevas funciones de Redis
- Agregar instrumentación para nuevas funciones de Redis .
Convierte todas las rutas internas de
os.pathapathlib.Path- Convierta todo el uso interno de rutas basadas en cadenas y
os.pathapathlib.Pathen preparación para admitir rutas de Windows.
- Convierta todo el uso interno de rutas basadas en cadenas y
Corrección de errores
Solucionar el problema con la codificación JSON de PosixPath
- Algunos usuarios estaban experimentando problemas con la configuración de codificación JSON
PosixPath. Este problema fue solucionado.
- Algunos usuarios estaban experimentando problemas con la configuración de codificación JSON
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 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.