Notes
This release of the Python agent includes bug fixes and improvements to the builtin pika instrumentation.
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 Feature
Naming of Pika Message Transactions
This release improves the naming of message transactions . Message consumer transactions are now split based on the name of the consume callback.
Improved metadata collection for cloud providers
The agent now collects additional metadata when running in AWS, GCP, Azure, and PCF. This information is used to provide an enhanced experience when the agent is deployed on those platforms.
Bug Fixes
CherryPy WSGI Server automatic instrumentation
This release fixes a bug where
cherrypy.wsgiserver.CherryPyWSGIServer
was not being instrumented. This bugfix impacts CherryPy versions v6.1.0 to v8.9.1.
Notes
This release of the Python agent includes bug fixes for the pika RabbitMQ library instrumentation.
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.
Bug Fixes
Using pika to make RPC-style calls from Tornado could result in an application crash
When making a remote procedure call from a tornado web application using the pika RabbitMQ library's Tornado connection, it is possible for the tornado web application to crash. Pika Tornado connections no longer result in an application crash.
AttributeError generated from an unregistered application starting a MessageTransaction
Applications which consume message transactions and do not call
register_application
can raise an AttributeError resulting in an application crash. This issue has now been fixed.
Notes
This release of the Python agent adds built-in instrumentation for the pika RabbitMQ library, a message broker API which can be used to add custom instrumentation for additional message brokers, 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
Pika Instrumentation
The RabbitMQ pika library is now automatically instrumented. The agent will report data for messages sent and received by an application. Data on messages is available in both APM and Insights. Applications connected through a RabbitMQ exchange will now also be visible on Service Maps as part of Cross Application Tracing.
Message Broker API
A Message Broker API is now available for use in custom instrumentation. The Message Broker API will send data to APM and Insights (through message.routingKey and message.queueName attributes) for message broker related operations.
Tornado 4.5 Support
The Python Agent's out-of-the-box Tornado 4 instrumentation now supports Tornado version 4.5.
Tornado AsyncIO Loop
In addition to the Tornado PollIOLoop, the AsyncIO loop is now supported as part of our Tornado instrumentation. When Tornado is configured to use the AsyncIO loop, data will now be sent to New Relic. Note that AsyncIO is not yet generally supported.
Bug Fixes
SQL comments beginning with a "--" resulted in an improperly parsed query
When executing SQL queries with comments that used the "--" comment syntax, the database operation and table was not properly parsed resulting in queries being absent from the Databases tab. Queries with "--" comments should now show up in the Database tab.
AttributeError generated when using Tornado 4 HTTPRequest objects in an external web call
When using the Tornado 4 HTTPRequest object as an argument to HTTPClient.fetch, it was possible to generate an AttributeError. The web call now completes as expected.
Slow network connections may result in lost data
When, due to a slow network, a 408 error is returned from New Relic data was not retransmitted. Data is now retransmitted when a 408 is received.
Notes
This release of the Python agent includes various bug fixes as described below.
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.
Bug Fixes
Handle exceptions generated by Tornado 4 AsyncHTTPClient during fetch
Exceptions generated by a call to the AsyncHTTPClient resulted in an agent instrumentation error. Exceptions generated by AsyncHTTPClient are now recorded and properly handled.
Using gevent/eventlet on Python 3.6 resulted in a RecursionError
Python 3.6 introduced a change to the ssl library. This change can result in a recursion error when the New Relic agent imports ssl prior to eventlet/gevent patching the ssl library (as is the case with use of the newrelic-admin script). This recursion error has been fully mitigated.
Notes
重要
This release has been superseded. Please use version 2.86.2.68 or higher.
This release of the Python agent includes various bug fixes as described below.
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.
Bug Fixes
Handle exceptions generated by Tornado 4 AsyncHTTPClient during fetch
Exceptions generated by a call to the Tornado 4 AsyncHTTPClient resulted in an agent instrumentation error. Exceptions generated by AsyncHTTPClient are now recorded and properly handled.
Using gevent/eventlet on Python 3.6 resulted in a RecursionError
Python 3.6 introduced a change to the ssl library. This change can result in a recursion error when the New Relic agent imports ssl prior to eventlet/gevent patching the ssl library (as is the case with use of the newrelic-admin script). This recursion error has been mitigated when using newrelic-admin to start applications.
Notes
This release of the Python agent includes improvements to our introductory support for Tornado 4 applications 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.
New Feature
Tornado 4 Outbound Cross Application Tracing
Tornado 4 Cross Application Tracing is now supported for outbound web transactions. In addition to Service Maps, Tornado 4 transaction traces will now contain links to the application it called. With this update, Cross Application Tracing is now fully supported for Tornado 4 applications.
Bug Fixes
Django 1.10+ browser monitoring with new-style gzip middleware
Browser monitoring was not automatically inserted when using new style Django 1.10+ gzip middleware. Browser monitoring code is now inserted as expected.
Using motor versions 1.X generated instrumentation errors
Motor 1.0 removed the MotorReplicaSetClient class which resulted in the New Relic Python Agent generating an instrumentation error when attempting to access that class. The instrumentation has been fixed.
Notes
This release of the Python agent includes bug fixes and improvements to the precision of the duration data recorded for transaction traces.
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 Feature
Transaction trace precision
This release improves the precision of transaction traces. Duration of functions in a transaction trace are now recorded at sub-millisecond precision.
Bug Fixes
Custom classmethod traces may incorrectly return the parent class
Wrapping classmethods in classes that are subclassed could cause the subclassed classmethod to be improperly bound to the parent class. This would result in the classmethod returning an instance of the parent class when the method was called on a child class.
Handle incomplete Tornado coroutine traces
Tracing a Tornado coroutine that never completed and was later garbage collected, could result in an application hang. This has been fixed.
Notes
This release of the Python agent includes a bug fix for our introductory support for Tornado 4 applications.
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.
Bug Fixes
Ending Tornado 4 transactions inside of a traced function results in an internal agent error
Ending a Tornado 4 web transaction within a traced function previously resulted in the generation of an agent traceback. The agent now completes tracing the function before ending the transaction, resulting in the correct reporting of these transactions to New Relic.
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
andWSGI/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.