Notes
This release of the Python agent removes previously deprecated APIs, makes SSL communication with New Relic mandatory, and updates support for aiohttp middleware.
The agent can be installed using easy_install/pip/distribute via the Python Package Index or can be downloaded directly from the New Relic download site.
Deprecations
Removed previously deprecated APIs
The following APIs have been removed:
- transaction (use current_transaction)
- name_transaction (use set_transaction_name)
- Application.record_metric (use Application.record_custom_metric)
- Application.record_metrics (use Application.record_custom_metrics)
- Transaction.notice_error (use Transaction.record_exception)
- Transaction.record_metric (use Transaction.record_custom_metric)
- Transaction.name_transaction (use Transaction.set_transaction_name)
Deprecate Transaction.add_user_attribute
Transaction.add_user_attribute has been deprecated in favor of Transaction.add_custom_parameter. Transaction.add_user_attribute will be removed in a future release.
Deprecate Transaction.add_user_attributes
Transaction.add_user_attributes has been deprecated in favor of Transaction.add_custom_parameters. Transaction.add_user_attributes will be removed in a future release.
Deprecate wrap_callable
wrap_callable has been deprecated in favor of FunctionWrapper. wrap_callable will be removed in a future release.
Remove data-source admin command
The platform API (used by newrelic-admin data-source) has been removed. Please use data sources in place of the platform API.
SSL
SSL connections to New Relic are now mandatory
Prior to this version, using an SSL connection to New Relic was the default behavior. SSL connections are now enforced (not overrideable).
AIOHTTP Updates
Add automatic tracing of AIOHTTP 3 middleware
In addition to the old-style middleware previously supported, the AIOHTTP 3 style middleware is now automatically traced as part of the AIOHTTP instrumentation package.
Notes
This release of the Python agent includes a fix for security bulletin nr18-07.
The agent can be installed using easy_install/pip/distribute via the Python Package Index or can be downloaded directly from the New Relic download site.
Notes
This release of the Python agent adds support for AIOHTTP version 3.
The agent can be installed using easy_install/pip/distribute via the Python Package Index or can be downloaded directly from the New Relic download site.
Improved AIOHTTP Support
Support for AIOHTTP 3
AIOHTTP major version 3 is now supported by the New Relic Python agent.
Notes
This release of the Python agent adds a deprecation warning for customers that disable SSL, and adds bugfixes for supported async frameworks that use asyncio.
The agent can be installed using easy_install/pip/distribute via the Python Package Index or can be downloaded directly from the New Relic download site.
Mandatory SSL
Disabling SSL connections to New Relic has been deprecated
SSL connections are enabled by default. In a future release, the option to disable SSL will be removed.
Bug Fixes
Using asyncio.gather or asyncio.ensure_future now tracks transaction context
Prior to this release, using asyncio.gather or asyncio.ensure_future may result in certain traces (such as external calls) not being reported in the transaction. Traces scheduled with asyncio.gather or asyncio.ensure_future from within the context of a transaction should now be properly attributed to the transaction.
Notes
This release of the Python agent contains improvements to the time tracing API as well as bug fixes.
The agent can be installed using easy_install/pip/distribute via the Python Package Index or can be downloaded directly from the New Relic download site.
Time Trace API Improvements
Time trace APIs (such as function_trace) can now be used with coroutines
The following decorator APIs can now be used with native coroutines and generators:
- function_trace
- database_trace
- datastore_trace
- external_trace
- message_trace
- memcache_trace
Example:
@function_trace(name='my_coroutine')async def my_coroutine():await asyncio.sleep(0.1)
Bug Fixes
gRPC instrumentation used on Python 2.x can cause a memory leak
When using gRPC on Python 2, gRPC futures would not be garbage collected resulting in a memory leak. gRPC futures will now be garbage collected.
Instrumentation for Dropbox v8.0 and newer caused error log messages
Dropbox client version 8.0 or higher raised instrumentation errors. These errors did not prevent metrics on Dropbox from being sent. These errors have been removed.
Values from negated ranges were sometimes added to ignore_status_codes
Negated status codes not found in the current ignore_status_codes were added if they were part of a range of values. This issue has been addressed.
Notes
This release of the Python agent contains security related updates as well as bug fixes.
The agent can be installed using easy_install/pip/distribute via the Python Package Index or can be downloaded directly from the New Relic download site.
Security Updates
See the associated security bulletins for custom API parameters in high-security mode and for SQL params for SQLite.
Bug Fixes
Using the aiohttp client may result in an application crash
Under certain circumstances, using the aiohttp client may have resulted in an application crash. This issue has been addressed.
Database queries made with psycopg2 may not have been recorded
When using the "with" statement to create a cursor, time spent on database calls may not have been properly recorded. This issue has been addressed.
Usage of the pika library resulted in a memory leak
When using the pika library with New Relic, Channel objects would not be cleared from memory as expected. This would result in abnormally high memory utilization in some cases. The memory leak has now been fixed.
DeprecationWarning generated for async/await keywords
Using the agent may have generated a DeprecationWarning around async/await being reserved keywords. The DeprecationWarning should no longer be generated.
Notes
This release of the Python agent adds improvements to django instrumentation, improvements to django rest framework instrumentation, and various bug fixes.
The agent can be installed using easy_install/pip/distribute via the Python Package Index or can be downloaded directly from the New Relic download site.
Improved Features
Enabled reporting of handled exceptions in Django REST Framework
Exceptions handled by django rest framework are now reported if the resulting response code is not ignored (see ignore_status_codes for details).
Add support for the error_collector.ignore_status_codes setting in Django
Ignoring exceptions in Django was previously limited to the error_collector.ignore_errors configuration option. Ignoring exceptions by response status code is now supported for Django through the use of the error_collector.ignore_status_codes configuration option.
Bug Fixes
Servicing aiohttp websocket requests results in an application crash
Servicing a websocket request in an aiohttp application may have resulted in an application crash when using the New Relic python agent. The application will now operate as expected when handling a websocket request.
Ignore incomplete aiohttp transactions
In aiohttp, connections can be terminated prior to the HTTP response being generated and sent. In those cases, the request handler may be cancelled. These transactions are no longer reported.
Fix HTTP status reporting for Tornado transactions
HTTP status was not properly added to Tornado transaction events and transaction traces. HTTP status is now automatically added to Tornado transaction events in Insights and transaction traces in APM.
Fix reporting of concurrent external requests in Tornado
External requests that execute in parallel in a tornado application may not have been recorded. This issue has been addressed.
Notes
This release of the Python agent adds instrumentation for aiohttp framework, adds support for displaying Heroku dyno names, and various bug fixes.
The agent can be installed using easy_install/pip/distribute via the Python Package Index or can be downloaded directly from the New Relic download site.
New Features
Add instrumentation for aiohttp framework
Data is now automatically collected for applications using the aiohttp framework. Data for aiohttp applications will appear in both APM and Insights. Additionally, cross application tracing is supported for incoming requests for aiohttp applications. In addition to service maps, aiohttp applications will now show the calling application in transaction traces.
Add support for displaying Heroku dyno names
Heroku-friendly logic is now applied to how dyno names are displayed. This includes being able to collapse dyno hostnames based on prefix.
Bug Fixes
Fix crash for gunicorn gaiohttp driver
Using gunicorn's gaiohttp worker with New Relic Browser monitoring enabled may have resulted in an application crash. This crash has been fixed and the gaiohttp worker is now fully supported with the New Relic Python Agent.
Fix crash for pika versions 0.9.x and earlier
Using the agent with pika versions 0.9.x and earlier could have resulted in an application crash. This issue has now been fixed.
Notes
This release of the Python agent adds instrumentation for aiohttp client.
The agent can be installed using easy_install/pip/distribute via the Python Package Index or can be downloaded directly from the New Relic download site.
New Features
Add instrumentation for aiohttp client
Outbound HTTP requests through the aiohttp library are now recorded. aiohttp Cross Application Tracing is now supported for outbound requests. In addition to Service Maps, applications accessed through the aiohttp client will now appear in transaction traces.
Bug Fixes
Fix crash when using psycopg2 v2.7 composable queries
The psycopg2 library introduced a module to generate SQL dynamically (psycopg2.sql) in version 2.7. Passing a Composable type object (psycopg2.sql.Composable) to execute or executemany resulted in an application crash. The agent now correctly handles psycopg2 Composable objects.
Notes
This release of the Python agent adds support for monitoring of outbound gRPC requests and adds an API for cross application tracing of custom non-HTTP transports. For details on APIs for cross application tracing see the cross application tracing document.
The agent can be installed using easy_install/pip/distribute via the Python Package Index or can be downloaded directly from the New Relic download site.
New Features
Add API for cross application tracing of non-HTTP external services
A new API is now exposed for implementing cross application tracing in custom instrumentation of non-HTTP transport libraries. For usage of this API see the cross application tracing document.
Add instrumentation for gRPC client calls
Outbound gRPC requests will now show up in APM under the External Services tab and in transaction traces.
Bug Fixes
Fixes erroneous recording of TastyPie
NotFound
exceptionsWhen a TastyPie API view raised a NotFound exception resulting in a 404 response, the agent may have erroneously recorded the exception. This has now been fixed.