Python Agent 1.10.0.28

Released on: 
Wednesday, January 23, 2013 - 00:00
End of Life

The end-of-life date for this agent version is July 29, 2019. To update to the latest agent version, see Update the agent. For more information, see End-of-life policy.

Notes

This release of the Python agent contains a fix for when reporting to multiple applications, as well as other minor bug fixes and enhancements.

For a list of known issues with the Python agent see our online help article on the status of the Python agent.

New features:

  • On the Linux platform, the agent environment now reports the total amount of system memory available.

  • Added support for psycopg2cffi database module.

  • Custom parameters can be associated with function trace nodes for display against transaction traces in the UI.

  • The URL associated with a call to an external service will now be shown in the custom parameters section for the node in a transaction trace. Previously would have been shown as a label when hovering other the node.

Bug fixes/Improvements:

  • The agent was not reporting any data where multiple applications were being listed in in the app_name configuration setting.

  • Calling register_application() in the context of a module import could cause a temporary deadlock when a timeout period was specified. The potential for deadlock will now be detected and the function will return without waiting.

  • When the agent was configured to capture query string parameters, a key with an empty value was being discarded and not reported.

  • When using gevent mode of gunicorn, the SystemExit exception was being logged on process shutdown due to gevent sending the SystemExit exception to all greenlets and not just the main thread when sys.exit() was called.

  • Instrumentation wrapping the Django reverse() function was not accepting named parameters.

  • If custom parameters were used with a transaction, the HTTP response STATUS was duplicated in details related to an error raised from that transaction.

  • Changes to Django instrumentation to avoid metric grouping issues resulting from raw URLs leaking through as transaction name.