Python Release Notes

2017, March 15 - 14:00 Download

Notes

This release of the Python agent improves our introductory support for Tornado 4 applications by adding Cross Application Tracing for web transactions that are sent to a Tornado 4 application.

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 Feature

  • Tornado 4 applications will now appear in Service Maps

    Tornado 4 Cross Application Tracing is now supported for inbound web transactions. In addition to Service Maps, the calling application's APM will now have links to the Tornado 4 application it called in the External Services tab and in Transaction Traces.

Bug Fixes

  • Record exceptions outside of view handlers in Django 1.10

    Unhandled exceptions that occurred outside of a view handler in Django 1.10 were not reported. In addition to middleware exceptions, these unhandled exceptions can be generated when a view handler returns a TemplateResponse and rendering that template would result in an exception.

  • Consistent WSGI/Application and WSGI/Response segments

    Prior to this release, the agent would group segments under WSGI/Application and WSGI/Response differently, depending on whether or not browser monitoring was enabled. This has now been made consistent.

  • Improved New Relic WSGI middleware behavior

    The New Relic agent is now resilient when called by non-conforming middleware. Transactions will continue to be reported normally when the New Relic agent is called by WSGI middleware that does not call the close() method as described in the PEP 333 specification.

2017, February 27 - 15:15 Download

Notes

This release of the Python agent is a hotfix release to address a problem with the Tornado 4 instrumentation for curl_httpclient introduced in our last release (v2.80.0.60). Under the circumstances described below, calling CurlAsyncHTTPClient.fetch_impl() could result in an agent error.

The agent can be installed using easy_install/pip/distribute via the Python Package Index or can be downloaded directly from our download site.

Bug Fix

  • Fix CurlAsyncHTTPClient.fetch_impl() instrumentation

    If fetch_impl() was called by passing the request argument positionally, but passing callback as a keyword argument, then the agent would throw an error. In practice, this only affected customers who implemented a custom version of fetch_impl(), but for those affected customers, this is now fixed.

2017, February 23 - 13:15 Download

Notes

This release of the Python agent enhances our introductory support for Tornado 4, most notably by adding support for tornado.curl_httpclient.

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

  • Tornado 4 curl_httpclient support

    Previously, the agent's Tornado 4 instrumentation only supported the default tornado.simple_httpclient. With this release, support has been added for tornado.curl_httpclient as well.

  • Tornado 4 ZeroMQ IOLoop support

    Using ZMQIOLoop in place of the default Tornado IOLoop is now supported for Tornado 4 applications.

Improved Feature

  • Improved transaction names for Django REST Framework

    When using the Python agent with Django REST Framework and Python 3, function-based views wrapped with the rest_framework.decorators.api_view decorator would result in transactions with names based on the decorator (WrappedAPIView.handler) rather than names based on the original view function. (This did not affect applications running with Python 2.)

    With this release, the transaction names for these wrapped views are now based on the name of the original view function in both Python 2 and Python 3.

Bug Fix

  • End transactions correctly with Tornado 4 @asynchronous decorator

    When the agent records a transaction for a Tornado 4 RequestHandler method that is decorated with the @tornado.web.asynchronous decorator, the transaction should remain open until RequestHandler.finish() is called. Prior to this release, there were some circumstances where the agent closed the transaction prematurely, resulting in transaction durations that were too short. This has now been fixed.

2017, January 4 - 14:30 Download

Notes

This release of the Python agent adds support for reporting datastore instance information for the elasticsearch library.

Over the past few releases, support has been added to the agent for collecting datastore instance information for a number of drivers. See a complete list of supported packages.

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 Feature

  • Datastore instance information for elasticsearch

    For operations made using the official Elasticsearch client, the Python agent will collect the host and port of the elasticsearch server. This data will be displayed in transaction traces and in slow query traces in APM.

Bug Fix

  • Cornice 2.3.0 TypeError

    When using the latest version of Cornice,the Python agent would raise a TypeError exception due to not handling the changed signature of cornice.Service.decorate_view(). Earlier versions of Cornice were not affected, and with this release, the Python agent no longer raises an error for version 2.3.0.

2016, December 14 - 15:30 Download

Notes

This release of the Python agent adds support for reporting datastore instance information for the python-memcached library. It also addresses a couple of Python 3 issues related to naming metrics and transactions.

Over the past few releases, support has been added to the agent for collecting datastore instance information for a number of drivers. See a complete list of supported packages.

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

  • Datastore instance information for python-memcached

    For most memcached operations made using the python-memcached package, the Python agent will collect the host and port of the memcached server, as well as the memcached database index number. This data will be displayed in transaction traces and in slow query traces in APM.

    Supported operations include: add, append, cas, decr, delete, get, gets, incr, prepend, replace, set.

    Currently, the Python agent does not collect instance information for operations that interact with multiple memcached instances. These include: delete_multi, flush_all, get_multi, get_slabs, get_stats, set_multi.

Bug Fixes

  • Names for subclass methods in Python 3

    Previously, when using Python 3, if a method was defined on a base class, but was called as a method on an instance of a subclass, the agent would generate a metric name or transaction name for that method using the base class. It would also use the module name of the base class in the metric or transaction name.

    With this release, the metric name or transaction name will use the class name of the subclass, as well as the module name of the subclass. This is consistent with how the naming works for Python 2.

  • Names for Flask pluggable views in Python 3

    When monitoring Python 3 Flask applications, the agent would create metric and transaction names for Flask pluggable (or, class-based) views using the name of the View.as_view() classmethod, making it impossible to distinguish between different views in APM. Now, the metric and transaction name uses the name that is passed into View.as_view().

    For example, a view defined as view_func=ShowUsersView.as_view('show_users') would use show_users as the view name. This is consistent with how the naming works for Python 2.

  • Redis client with custom connection pool

    If a custom connection pool was used with the redis client, the agent could throw an AttributeError when attempting to gather datastore instance information. One library known to define a custom connection pool that encountered this issue is Redis Blaster. With this release, the agent will no longer throw an error for custom connection pools. In addition, the agent will now be able to gather datastore instance information for some operations, even when using a custom connection pool.

  • Developer Mode error message during "fake" harvest

    When using the configuration setting of developer_mode = True, the agent does not transmit any data to New Relic. Instead, it performs a "fake harvest". In some cases, it was possible for the agent to log an AssertionError during the "fake harvest", but this issue has now been fixed.

2016, November 14 - 11:00 Download

Notes

This release of the Python agent adds support for reporting datastore instance information for both the redis and MySQLdb drivers.

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

  • Datastore instance information for redis

    For redis operations made using the redis-py package, the Python agent will collect the host and port of the redis server, as well as the redis database index number. This data will be displayed in transaction traces and in slow query traces in APM.

  • Datastore instance information for MySQLdb

    For queries made with the MySQLdb driver, the Python agent will collect the host and port of the database server, as well as the database name. This data will be displayed in transaction traces and in slow query traces in APM.

2016, October 25 - 11:00 Download

Notes

This release of the Python agent is a hotfix release to address a problem introduced in our last release (v2.72.0.52) where users of the psycopg2 Postgresql database adapter could see extra Datastore entries in the Breakdown Table on the Transactions page in APM.

The agent can be installed using easy_install/pip/distribute via the Python Package Index or can be downloaded directly from our download site.

Bug Fix

  • Remove extra Datastore segments from the Transactions Breakdown Table

    Due to the extra Datastore segments in the Breakdown Table on the Transactions page in APM, the "% Time" column would add up to greater than 100%. This problem has now been fixed. Users of psycopg2 who are using v2.72.0.52 of the Python agent are encouraged to upgrade to this latest version.

2016, October 18 - 12:00 Download

Notes

This release of the Python agent adds support for reporting datastore instance information for the psycopg2 Postgresql driver.

The agent can be installed using easy_install/pip/distribute via the Python Package Index or can be downloaded directly from our download site.

New Feature

  • Datastore instance information for psycopg2

    For queries made with the psycopg2 Postgresql driver, the Python agent will collect the host and port of the database server, as well as the database name. This data will be displayed in transaction traces and in slow query traces in APM.

2016, September 6 - 11:00 Download

Notes

This release of the Python agent adds support for the improved Django middleware introduced in Django v1.10, and also adds instrumentation for the boto3 and awscli packages.

The agent can be installed using easy_install/pip/distribute via the Python Package Index or can be downloaded directly from our download site.

New Features

  • Django 1.10 Middleware Support

    As described in Django Enhancement Proposal 5 and in the Django v1.10 middleware documentation, Django introduced a new style of middleware in version 1.10. Previously, Django allowed you to define certain methods on middleware classes: process_request() methods would run before the view handler was invoked, and process_response() methods would run after the response was generated. Accordingly, the Python agent would instrument these as separate, self-contained methods, and in the Transaction Trace Details view, they would be displayed at the same level as the view handler in the segments hierarchy.

    With the improved version in Django v1.10, the middleware classes form a "chain", and each middleware calls the next middleware, until it reaches the end of the chain and calls the actual view. This means that new-style middleware acts as a wrapper, and each one is nested inside the previous one. As a result, in the Transaction Trace Details view, each middleware will be nested inside the previous one, and the actual view handler will be displayed nested inside the innermost middleware class. Furthermore, the duration of each middleware segment will include the duration of the middleware nested inside it.

    Because Django v1.10 is backwards-compatible with the old-style middleware, the agent also supports instrumenting old-style middleware in Django v1.10

  • Boto3 and AWS CLI Support

    With this release, API calls to Amazon Web Services endpoints made with the boto3 and awscli packages will be recorded as External Traces and will be visible in the External Services tab in APM. This is achieved by instrumenting the botocore library, which both boto3 and awscli utilize.

Bug Fixes

  • Proxy Scheme Output of network-config Command

    Prior to this release, the newrelic-admin network-config command would output the incorrect proxy scheme. That is now fixed.

  • Debug Console Works with Python 3

    The newrelic-admin debug-console is now compatible with Python 3.

2016, July 19 - 10:30 Download

Notes

This release of the Python agent is a bug fix release that addresses several recently reported issues.

The agent can be installed using easy_install/pip/distribute via the Python Package Index or can be downloaded directly from our download site.

Bug Fixes

  • WebSocket requests could cause application errors

    When an application is using gevent-websocket to serve a mixture of WSGI and WebSocket endpoints, it is possible for WebSocket requests to interfere with the instrumentation of non-WebSocket requests, and cause application errors. While a fix for this has been added to the 'gevent-websocket` main branch, that fix has not been released to PyPI yet. To address the problem now, the Python agent explicitly ignores WebSocket requests.

  • Disabling browser monitoring inadvertently disabled other features

    Disabling browser monitoring had the unintended effect of disabling certain other Response-related features of the agent. Specifically, the response.status attribute was not recorded, and the Cross Application Tracing headers were not added to the HTTP headers of the outgoing response. With this release, those features now work when using the configuration setting of browser.monitoring.enabled = False.

  • Calling a Celery task within another task could cause a RuntimeError

    The Python agent would throw a RuntimeError('transaction already active') when instrumenting a Celery task that performed the following combination of actions:

    1. Utilized the agent API to end the transaction early (end_of_transaction), or to ignore the transaction altogether (ignore_transaction).
    2. After ending or ignoring the transaction, called another Celery task that would run synchronously.

    This scenario, which most commonly occurs when taking advantage of Celery Workflows to compose multiple tasks together, will no longer result in a RuntimeError.

2016, May 26 - 10:30 Download

Notes

This release of the Python agent is a bug fix release that addresses several outstanding issues. In addition, the agent's instrumentation for the Pyramid web framework was updated to handle changes introduced in version 1.7 of Pyramid.

The agent can be installed using easy_install/pip/distribute via the Python Package Index or can be downloaded directly from our download site.

For a list of known issues with the Python agent, see Status of the Python agent.

New Feature

  • Support for Pyramid 1.7

    In version 1.7 of the Pyramid web framework, the ViewDeriver class was removed and replaced with a custom view pipeline, composed with view derivers. This required a change to where the agent applied it's instrumentation, since we were previously instrumenting the ViewDeriver class.

Bug Fixes

  • Gevent and Python 3.4+

    When running the agent with gevent in Python 3.4+, the agent would throw an AttributeError when accessing the _sleep attribute in the threading module, which was removed in Python 3.4. The agent now handles this properly.

  • Possible missing application exceptions in APM Error Analytics

    Using the record_exception() API, it is possible to record an exception against the application, but outside of a transaction. If there was a time window in which no transaction exceptions were recorded, but only application exceptions were recorded, then no exceptions would be displayed when viewing that time window in APM Error Analytics. With this release, application exceptions show up as expected, whether or not transaction exceptions were also recorded.

  • CherryPyWSGIServer and keyword arguments

    Previously, the agent would fail to instrument CherryPyWSGIServer correctly when it was initialized using keyword arguments. That is now handled correctly.

  • Missing attributes in Transaction Events

    In version 2.60.0.46 of the agent, two response header attributes were renamed, but they were not added to Transaction Events as they should have been.

    • response.headers.contentLength
    • response.headers.contentType

    These attributes are now included in Transaction Events.

Changed Feature

  • Capture port for all HTTP requests to External Services

    Prior to this release, the agent would capture the port for HTTP requests to external services for only some of the HTTP libraries that the agent instruments. Notably, the port was missing when using these libraries directly: httplib, httplib2, and urllib3. The agent now captures the port for these libraries.

2016, April 20 - 11:00 Download

Notes

This release of the Python agent is a bug fix release which improves our introductory support for instrumenting Tornado 4 applications. Full details about the status of our Tornado 4 support can be found on our Introductory Tornado 4 support page.

The agent can be installed using easy_install/pip/distribute via the Python Package Index or can be downloaded directly from our download site.

For a list of known issues with the Python agent, see Status of the Python agent.

New Feature

  • New attributes captured for Tornado 4 applications

    The following attributes are now captured for requests made to Tornado 4 applications:

    • request.headers.accept
    • request.headers.host
    • port

Bug Fixes

  • Potentially too many metrics created for tornado.httpclient function traces

    The tornado.httpclient instrumentation for Tornado 4 applications could cause a "metric grouping issue" in the function traces it created, if it was used to make requests to a large number of unique URLs. To address this issue, the URL is no longer included in the name of the function trace.

  • Transactions in Tornado 4 applications could be created with invalid agent settings

    In the prior release, if a transaction started before the agent had completed registration with the collector, the transaction could have invalid settings, which would result in various errors in the agent log, including an AttributeError when an external call was made during the transaction. These errors only happened at application startup until registration was complete. With this release, transactions cannot start with invalid settings.

  • The httplib2 instrumentation did not process the cross application tracing headers in the response

    Failing to process the response headers resulted in the inability to link to cross application tracing details in the Transaction Trace Details view, as well as missing ExternalTransaction and ExternalApp metrics. Now, the httplib2 instrumentation in the agent processes the cross application tracing headers correctly.

Known Tornado 4 Limitations Addressed

  • Explain plans for queries made with psycopg2's "async mode" are disabled automatically

    Currently, the Python agent does not support explain plans for queries made in psycopg2's "async mode." In the prior release, it was necessary to add the configuration setting transaction_tracer.explain_enabled = false to disable explain plans, or else errors would occur during data harvest, potentially causing loss of data. With this release, the agent disables explain plans automatically when async mode is detected.

  • Added support for Synthetics Transaction Traces

    Tornado 4 applications will now recognize incoming requests from Synthetics and generate transaction traces for Synthetic requests.

Status of Tornado 4 Support

A current list of known limitations can be found on our Introductory Tornado 4 support page. No new known limitations have been added since our introductory release (v2.62.0.47). In the next few releases, we plan to continue addressing these issues.

2016, March 30 - 14:00 Download

Notes

This release of the Python agent adds introductory support for instrumenting Tornado 4 applications.

The agent can be installed using easy_install/pip/distribute via the Python Package Index or can be downloaded directly from our download site.

For a list of known issues with the Python agent, see Status of the Python agent.

New Feature

  • Introductory Support for Tornado 4. (See below for details.)

Bug Fix

  • Django Template Tags for Browser Monitoring Fixed for Django 1.9

For manual insertion of the browser monitoring javascript for page load timing, the Python agent offers two Django template tags: newrelic_browser_timing_header and newrelic_browser_timing_footer.

Starting in Django version 1.9, the output of simple_tag is now escaped, which results in the browser monitoring javascript being included as escaped text in the HTML output. To fix this issue, the agent now uses django.utils.safestring:mark_safe() to prevent automatic escaping for these two template tags.

Introductory Support for Tornado 4

New Relic is pleased to announce introductory support for Tornado 4. While not all features are supported at this point, providing it at an early stage allows interested customers to preview our Tornado 4 support, and provide feedback on what works well and what doesn't.

We strongly advise running the introductory Tornado 4 instrumentation in a testing or staging environment before considering using it in a production environment.

For detailed information about the introductory Tornado 4 support, including Supported Features, Design Decisions, and Known Limitations, see Introductory Tornado 4 support.

Status of Tornado 4 Support

The following is a list of known limitations for our Tornado 4 support as it exists in the current version of the agent. In the next few releases, we plan to address these issues.

  • If you use psycopg2 in aynchronous mode, you must disable explain plans in the Python agent, or else the agent will throw an error when it attempts to run an explain plan query. Add this setting to your newrelic.ini configuration file:

    transaction_tracer.explain_enabled = false
    
  • Metric names should be more consistent. For a method of a class, the metric name should contain both the name of the class and the method, but sometimes, the metric name will be missing the class name.

  • The nesting of segments in a Transaction Trace should be improved. Right now, transaction traces give a good indication of the order that callbacks run on the IOLoop, but they do not group together callbacks that belong to the same coroutine, nor do they show how callbacks relate to each other.

  • Transaction Traces mislabel time spent in "Application code". Because the Tornado 4 instrumentation traces all callbacks that run on the IOLoop, nearly everything that happens in a transaction is recorded. Very little is uninstrumented "Application code". When you see "Application code" time in a transaction trace, that usually means that the IOLoop was either busy running callbacks belonging to another transaction, or was waiting and not doing any work. This will be made clearer in a future release.

  • In the current version of the agent, the Total Time for a transaction will always equal the duration of the transaction. In future versions, we may begin measuring the time spent waiting for asynchronous External Traces and Datastore Traces to return results, which will increase the Total Time for a transaction, making it possible to have a Total Time greater than the duration of the transaction.

  • When using tornado.httpclient, no Cross Application Tracing headers are added to the outgoing requests. (This is true for both HTTPClient and AsyncHTTPClient.) That means that the application that the httpclient connects to will not show up in any of the following: trace maps, transaction maps, and service maps.

  • Asynchronous External Traces only trace the initial HTTP connection. They do not trace the time for the response to come back.

  • If you monitor your Tornado 4 application with Synthetics, the Python agent will not capture transaction traces for Synthetics checks, so you will be unable to connect your Synthetics results to APM transaction traces.

  • Measuring thread utilization is disabled for Tornado applications.

  • Exceptions thrown in RequestHandler.initialize() are not recorded.

  • Use of Tornado's built-in multi-process mode to start multiple processes and have them all share the same port is untested and unsupported.

  • Use of tornado.wsgi.WSGIAdapter and tornado.wsgi.WSGIContainer is untested and unsupported.

  • Use of tornado.platform.asyncio to bridge between asyncio and Tornado IOLoop is untested and unsupported. Currently, the agent only supports the use of the tornado.ioloop.IOLoop.

  • Use of the async and await keywords is untested and unsupported.

  • Integration with Twisted is untested and unsupported.

2015, December 14 - 11:00 Download

Notes

This release of the Python agent enables the ability to add Custom Insights Events through a new record_custom_event() API.

The agent can be installed using easy_install/pip/distribute via the Python Package Index or can be downloaded directly from our download site.

For a list of known issues with the Python agent, see Status of the Python agent.

New Feature

  • Custom Insights Events

Prior to this release, the Python agent had the capability to record two types of Insights events automatically: Transaction and TransactionError events. In addition, custom attributes could be added to those events. Now, with the addition of the record_custom_event() API, it is possible to define your own custom event types, enabling greater flexibility about what types of events you can view and query in Insights.

For details, see the Insights documentation on Inserting Custom Events.

Changed Feature

  • Attributes renamed

Two attributes have been renamed, in order to be consistent with the naming convention of other New Relic agents. The affected attributes are:

  • response.headers.contentLength (was response.contentLength)
  • response.headers.contentType (was response.contentType)
2015, November 25 - 13:00 Download

Notes

This release of the Python agent is a hotfix release to address a problem where the agent could fail to validate the SSL certificate of the New Relic collector in some environments.

The agent can be installed using easy_install/pip/distribute via the Python Package Index or can be downloaded directly from our download site.

For a list of known issues with the Python agent, see Status of the Python agent.

Bug Fix

If the Python agent was used in an environment where the certifi package was installed, the Python agent would use the certifi CA certificates bundle to validate the certificate of the New Relic collector. However, the latest release of certifi (November 20, 2015) removed some older CA certificates with 1024-bit keys.

The SSL certificate for the New Relic collector is cross-signed with both a 1024-bit certificate and a 2048-bit certificate, but in some circumstances, the stronger root certificate was not used for validation. When the 1024-bit certificate was no longer included in the certifi bundle, SSL validation would fail. Affected customers would see warnings in their agent log stating "Data collector is not contactable" due to an SSLError.

To address this issue, the agent no longer uses the certifi CA certificates bundle, nor the certificates bundled with requests. Instead, it only uses the CA bundle included with the agent to validate the New Relic collector certificate.

2015, November 17 - 17:00 Download

Notes

This release of the Python agent is a hotfix release to address a problem where the package failed to install under certain circumstances.

The agent can be installed using easy_install/pip/distribute via the Python Package Index or can be downloaded directly from our download site.

For a list of known issues with the Python agent, see Status of the Python agent.

Bug Fix

The README.rst file contained non-ASCII characters, which could result in a UnicodeDecodeError during installation. Those characters have been removed.

2015, November 16 - 12:00 Download

Notes

This release of the Python agent reports error events to Insights and captures enhanced error data to support the new Advanced Error Analytics feature in APM.

The agent can be installed using easy_install/pip/distribute via the Python Package Index or can be downloaded directly from our download site.

For a list of known issues with the Python agent, see Status of the Python agent.

New Feature

  • Error Events

The Python agent now sends TransactionError events for Advanced Error Analytics, which power the new APM Errors functionality (currently in Beta). This allows users to create charts that facet and filter their error data by attributes, as well as explore their error events in Insights. For details, see the APM Errors documentation.

Changed Feature

  • Additional Attributes collected

The agent now collects additional attributes for web transactions:

  • HTTP request headers: Host and Accept
  • HTTP response header :Content-Length

Bug Fix

  • Improved unicode support for exception messages

Unicode exception messages will still be preserved, even if sys.setdefaultencoding() has been called to change the default encoding.

2015, September 30 - 11:00 Download

Notes

This release of the Python agent adds much more flexibility around what attributes are sent to New Relic, and where they are displayed.

The agent can be installed using easy_install/pip/distribute via the Python Package Index or can be downloaded directly from our download site.

For a list of known issues with the Python agent, see Status of the Python agent.

New Feature

  • Flexible capturing of attributes

Attributes are key-value pairs that contain additional information to be added to an event or transaction. These key-value pairs can be viewed within transaction traces in New Relic APM, traced errors in New Relic APM, transaction events in Insights, and page views in Insights.

A number of new configuration settings have been introduced to allow you to customize exactly which attributes will be sent to each of these destinations.

For details, see Python agent attributes.

Deprecated Settings

Several configuration settings have been deprecated. The most commonly used of the deprecated settings are capture_params and ignored_params. It is still possible to achieve the same functionality as the old settings by using the new attributes.include and attributes.exclude settings. For examples, see Python agent attribute examples.

A complete list of deprecated settings can be found in deprecated configuration settings.

While the usage of deprecated settings is still supported, we recommend upgrading your configuration to use the new settings as soon as possible.

Changed Feature

Previously, it was possible to save a list, dict, or tuple as an attribute value that could be displayed in transaction and error traces. However, these same attributes could not be displayed in Insights events. Now, all attributes are handled in a consistent manner, which means that all attribute values must be one of the following types:

Python 2: str, unicode, int, long, float, bool
Python 3: str, bytes, int, float, bool

All values which are not one of these types are automatically converted by calling str(value).

2015, July 29 - 11:30 Download

Notes

This release of the Python agent adds the ability to strip exception messages from error traces, in order to prevent the inadvertent capture of sensitive information.

The agent can be installed using easy_install/pip/distribute via the Python Package Index or can be downloaded directly from our download site.

For a list of known issues with the Python agent, see Status of the Python agent.

New Features

  • Exception Message Whitelisting

Because an exception message can contain sensitive information, the agent now provides the ability to strip exception messages before sending error traces to APM. Exception messages will be stripped automatically in high security mode. For exception messages you know to be safe, you can add them to a whitelist so that those messages are passed unaltered to APM. Two new configuration settings control this feature: strip_exception_messages.enabled and strip_exception_messages.whitelist.

Bug Fixes

  • capture_request_params API disabled for high security mode

When operating in high security mode, the agent should not capture query string parameters. However, prior to this release, it was possible to call newrelic.agent.capture_request_params(flag=True), even if the agent was in high security mode, and the agent would capture and report query string parameters. Now, the capture_request_params API call does not override the capture_params setting when the agent is in high security mode, so query parameters are not captured.

2015, June 11 - 11:30 Download

Notes

This release of the Python agent adds the ability to customize the hostname displayed in the APM UI, as well as updating the solrpy and pysolr instrumentation so that Solr metrics will now appear in the Databases tab in the UI.

The agent can be installed using easy_install/pip/distribute via the Python Package Index or can be downloaded directly from our download site.

For a list of known issues with the Python agent, see Status of the Python agent.

New Features

  • Customize hostname displayed in APM

A new configuration setting has been added: process_host.display_name. When set in the newrelic.ini configuration file, the display name will be used in the APM UI, in place of the hostname that the agent automatically captures. In addition, the display name can be set using the NEW_RELIC_PROCESS_HOST_DISPLAY_NAME environment variable.

Features Changed

  • Update solrpy and pysolr instrumention

Previously, solrpy and pysolr instrumentation reported metrics in the Solr namespace. Now, to align them with our recent changes to SQL and NoSQL instrumentation, solrpy and pysolr have been updated to report metrics in the Datastore namespace, which means that time spent in calls to Solr will be listed in both the main overview chart, as well as in the Databases tab in the UI.

Pages