Documentation forAppOptics

Python Agent Release Notes

5.2.0 - August 25, 2021

Return to top

Fixed

  • Tagging of custom metrics

Removed

  • Support for Python 2.7 and 3.4

  • Dependency on six (Python 2/3 compatibility) module

5.1.0 - July 8, 2021

Return to top

Added

  • Support for instrumentation of AWS Lambda functions
  • Configuration option to disable agent via the APPOPTICS_AGENT_ENABLED environment variable

5.0.0 - March 3, 2021

Return to top

Removed

  • Ability to force tracing by providing keyword argument force to Context.start_trace. This is a breaking change as the signature of Context.start_trace has been modified in a non-backwards compatible way.

Improved

  • Unit testing structure has been improved to eliminate mocking C-extension functionalities. This is a breaking change since the appoptics_apm_test.py module was removed.

  • Agent now ships with C-extension version 10.1.0

Fixed

  • requests instrumentation injects invalid X-Trace into HTTP header

  • requests instrumentation reports events with invalid edges

  • Tornado instrumentation incorrectly injects X-Trace into HTTP header when agent is in no-op mode

  • Tornado instrumentation injects incorrect X-Trace into HTTP header

  • In Python2.7, agent raises TypeError or UnicodeEncodeError when unicode objects are provided as a value to a info event

  • end_trace returns incorrect trace ID

  • WSGI instrumentation creates duplicate edges between reported events

  • When start_trace is provided with an invalid incoming X-trace, the agent does not report any events related to this request

  • start_trace raises TypeError when non-string object is provided as xtr parameter

  • When adding an info event with a non-string object as a key, the agent will report an error event instead of the info event. Non-string objects can now be reported as key (and will be converted to a string when the event is reported).

  • Agent crashes with message oboe_event_add_info: Assertion 'key' failed when a None object is provided as a key when reporting an info event

Changed

  • Project license has changed to Apache 2.0 License

4.4.0 - November 12, 2020

Return to top

  • Added: appoptics_apm is now providing Python wheels for manylinux2014 compatible platforms
  • Added: Support for Python 3.9
  • Added: Custom transaction name can now be set through APPOPTICS_TRANSACTION_NAME environment variable

4.3.1 - September 14, 2020

Return to top

  • Fix: Python runtime version is now reported without build information in agent's __Init message, C-extension library version is reported
  • Fix: Missing logging message on agent startup
  • Fix: Instrumentation of Django framework under Python 3 and uWSGI breaks depending on the order of import statements. Consult the documentation for most recent instructions on how to instrument Django applications.

4.3.0 - August 31, 2020

Return to top

  • Fix: The end_trace SDK function now returns a trace ID with sampling flag set to 00 as expected when tracing is disabled on the service level
  • Fix: The incorrect multiplication of the SampleRate value reported with the start event has been removed and SampleRate is now reported correctly
  • Fix: Configuration of tracing_mode through the INI configuration file is now honored
  • Fix: missing metrics when request of instrumented Django application is not sampled
  • Changed: Configuration values for tracing_mode have been renamed from always and never, to enabled and disabled, respectively (see Tracing Mode for current values)
  • Added: Custom transaction filtering to control tracing on a per-request basis (see Custom Transaction Filtering (Tracing Mode per Transaction) for current configuration values)

4.2.0 - July 16, 2020

Return to top

  • Upgrade: agent ships with newest C-extension version 10.0.1
  • Changed: CustomMetrics API functions custom_metrics_increment and custom_metrics_summary now have return values
  • Changed: CustomMetrics API functions custom_metrics_increment and custom_metrics_summary only accept positive integer for count parameter
  • Added: Limit maximum RPC request size to 3MB
  • Added: HTTP proxy support
  • Added: Support for Alpine Linux 3.9, 3.10, 3.11
  • Removed: Drop support for the following operating systems (due to upgrade of C-extension):
    • CentOS/RHEL 6
    • Ubuntu 12.04
    • Debian 6, Debian 7
    • Amazon Linux 2013.09

4.1.0 - Jun 17, 2020

Return to top

  • Added: Python3.8 support
  • Added: Trace ID injection into log messages
  • Fix: Missing __Init messages on agent startup
  • Added: appoptics_apm module now has __version__ attribute according to PEP 396
  • Fix: Incorrect agent startup behaviour when APPOPTICS_DEBUG_LEVEL is an empty string

4.0.0 - Apr 29, 2020

Return to top

  • Added: Python3.7 support
  • Added: Azure app service support
  • Added: Support for configurable EC2 metadata timeout
  • Fix: Renamed async to aosync to support Python3.7
  • Updated: agent configuration options changed - Consult official documentation for agent configuration options

3.5.9 - May 13, 2019

Return to top

  • Added: support for new API token format

3.4.9 - May 03, 2019

Return to top

  • Fix: upgrade to oboe 4.0.1 for agent readiness check
  • Fix: unhandled exception when running inside zip archive
  • Added: better startup message for unsupported platforms
  • Added: PID and TID to logs

3.4.8 - Jan 30, 2019

Return to top

  • Fix: broken traces caused by http client exceptions

3.4.7 - Dec 14, 2018

Return to top

  • Fix: incorrect service creation

3.4.6 - Dec 12, 2018

Return to top

  • Fix: agent always wrongly report sample source as local file

3.4.5 - Nov 23, 2018

Return to top

  • Added ability to set service key and hostname alias via configuration file
  • Added ability to disable agent logging and better logging level control. Note APPOPTICS_APM_PYTHON_DISABLE_LOGGER is no longer supported
  • Fix: middleware generating incorrect URL

3.4.4 - Nov 5, 2018

Return to top

  • Added safer processing of Django middleware settings
  • Added Django 2.1 support
  • Updated native extension which validates and automatically transformas invalid service names

3.4.3 - Oct 10, 2018

Return to top

  • Fix: safer parameter handling
  • Updated error reporting to conform to spec

3.4.2 - Oct 2, 2018

Return to top

  • Added: Agent-side sql sanitization
  • Fix: Uincode exception processing for python2
  • Updated native extension with improved network interface detection

3.4.1 - Sep 14, 2018

Return to top

  • Fix: DjangoORM should reraise application error
  • Fix: ensure reporting of transactions for unsampled requests

3.4.0 - Aug 31, 2018

Return to top

  • Added ability to install on OS X in no-op mode
  • Added appoptics_ready SDK call to check agent readiness
  • Fix: DjangoORM signature mismatch with wrapped method
  • Updated configuration log for less verbosity

3.3.1 - Aug 13, 2018

Return to top

  • Fix: installer error for linux distros without /etc/os-release file
  • Updated native extension with improved communication with AppOptics server (better host detection and optimized sending of data)

3.3.0 - Aug 13, 2018

Return to top

  • Added support for alpine distribution
  • Fix: thread-safe middleware instrumentation
  • Fix: avoid custom metrics wrong type or value caused segfault in native extension
  • Fix: references to old agent logger

3.2.0 - Jul 12, 2018

Return to top

  • Fix: custom_metrics_summary, custom_metrics_increment SDK calls. Note this is a breaking change to the SDK API, please see the updated signature for Custom Metrics
  • Fix: tornado X-trace header missing
  • Fix: middleware multi-span trace error
  • Fix: django exit event KV missing

3.1.0 - Jun 7, 2018

Return to top

  • Added support for custom transaction naming via the set_transaction_name SDK method

3.0.0 - May 2, 2018

Return to top

  • Initial release as appoptics-apm package

2.0.6 - May 2, 2018

Return to top

  • Final release to deprecate appoptics package

2.0.5 - Apr 12, 2018

Return to top

  • Added Django 1.7 support
  • Added support for Heroku
  • Fix: native extension memory leak
  • Fix: swallows backtraces when Flask is in debug mode

2.0.4 - Mar 14, 2018

Return to top

  • Add report Query Flavor KV for mysql
  • Fix: Avoid segfault related to concurrency in native extension
  • Fix: redis version [2.4.0, 2.8.0] transaction processing

2.0.3 - Nov 20, 2017

Return to top

  • Support hostname alias configuration

2.0.0b6 - Oct 7, 2017

Return to top

  • Initial AppOptics Python Agent Release