Prelude
Build and deploy Python 3.9 wheels for releases
Upgrade Notes
- Context.get() has been removed and the functionality has been rolled into Context.close_span().
- Tracer.record() has similarly been removed as it is no longer useful with Context.get() removed.
- The deprecated compatibility module <span class="title-ref">ddtrace.profile</span> has been removed.
- The profiler now uses the tracer configuration is no configuration is provided.
Deprecation Notes
- The <span class="title-ref">pyddprofile</span> wrapper is deprecated. Use <span class="title-ref">DD_PROFILING_ENABLED=true ddtrace-run</span> instead.
- The profiler does not catch uncaught exception anymore.
New Features
- botocore: added <span class="title-ref">distributed_tracing</span> configuration setting which is enabled by default.
- The ddtrace-run command now supports the following arguments:
-h, --help -d, --debug enable debug mode (disabled by default) -i, --info print library info useful for debugging -p, --profiling enable profiling (disabled by default) -v, --version show program's version number and exit
It now also has friendlier error messages when used incorrectly.
- Add functionality to call gevent.monkey.patch_all() with ddtrace-run by setting the environment variable DD_GEVENT_PATCH_ALL=true. This ensures that gevent patching is done as early as possible in the application.
- botocore: inject distributed tracing data to <span class="title-ref">ClientContext</span> to trace lambda invocations.
- botocore: inject tracing data to <span class="title-ref">MessageAttributes</span>.
- The profiler now tracks the running gevent Greenlet and store it as part of the CPU and wall time profiling information.
- The profiler is now able to upload profiles to the Datadog Agent by using a Unix Domain Socket.
- It is now possible to pass a <span class="title-ref">url</span> parameter to the <span class="title-ref">Profiler</span> to specify the Datadog agent location.
- The new memory profiler for Python is now enabled by default. This improves the profiler memory consumption and performance impact. It can still be disabled by setting <span class="title-ref">DD_PROFILING_MEMALLOC=0</span> as an environment variable.
- The profiler now uses the tracer configuration is no configuration is provided.
- pytest integration. This enables the [pytest](https://pytest.org) runner to trace test executions.
Bug Fixes
- core: always reset the current_span in the context.
- django: Http404 exceptions will no longer be flagged as errors
- django: add safe guards for building http.url span tag.
- aiobotocore: set span error for 5xx status codes.
- elasticsearch: set span error for 5xx status codes.
- django, DRF, ASGI: fix span type for web request spans.
- Fixes span id tagging in lock profiling.
- Fix UDS upload for profiling not using the correct path.
- Fixed an issue in profiling exporting profiles twice when forking.
- core: fix race condition in TracerTagCollector.
Other Changes
- Start-up logs are now disabled by default. To enable start-up logs use <span class="title-ref">DD_TRACE_STARTUP_LOGS=true</span> or <span class="title-ref">DD_TRACE_DEBUG=true</span>.
---