Python Agent (legacy) Release Notes
AppOptics agents are no longer receiving updates. The new SolarWinds Observability libraries are regularly updated with new features and improvements. If you are still relying on the AppOptics agents and your components are supported by the new libraries, consider migrating to SolarWinds Observability.
SolarWinds Observability Libraries are not compatible with AppOptics agents. Do not use a mix of SolarWinds Observability Libraries and AppOptics agents to instrument applications that are part of a distributed trace.
5.2.0 - August 25, 2021
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
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
Removed
-
Ability to force tracing by providing keyword argument
force
toContext.start_trace
. This is a breaking change as the signature ofContext.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
orUnicodeEncodeError
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
raisesTypeError
when non-string object is provided asxtr
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 aNone
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
- 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
- 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
- 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 andSampleRate
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 fromalways
andnever
, toenabled
anddisabled
, 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
- Upgrade: agent ships with newest C-extension version 10.0.1
- Changed: CustomMetrics API functions
custom_metrics_increment
andcustom_metrics_summary
now have return values - Changed: CustomMetrics API functions
custom_metrics_increment
andcustom_metrics_summary
only accept positive integer forcount
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
- 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
- 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.4.9 - May 03, 2019
- 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.5 - Nov 23, 2018
- 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
- 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.2 - Oct 2, 2018
- 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
- Fix: DjangoORM should reraise application error
- Fix: ensure reporting of transactions for unsampled requests
3.4.0 - Aug 31, 2018
- 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
- 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
- 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
- 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
- Added support for custom transaction naming via the set_transaction_name SDK method
2.0.5 - Apr 12, 2018
- Added Django 1.7 support
- Added support for Heroku
- Fix: native extension memory leak
- Fix: swallows backtraces when Flask is in debug mode