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.
Support for Pyramid 1.7
In version 1.7 of the Pyramid web framework, the
ViewDeriverclass 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
Gevent and Python 3.4+
When running the agent with
geventin Python 3.4+, the agent would throw an
AttributeErrorwhen accessing the
_sleepattribute in the
threadingmodule, which was removed in Python 3.4. The agent now handles this properly.
Possible missing application exceptions in APM Error Analytics
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
CherryPyWSGIServercorrectly when it was initialized using keyword arguments. That is now handled correctly.
Missing attributes in Transaction Events
In version 220.127.116.11 of the agent, two response header attributes were renamed, but they were not added to Transaction Events as they should have been.
These attributes are now included in Transaction Events.
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:
urllib3. The agent now captures the port for these libraries.