v0.45.0
Prelude
Python 3.9 wheels are now built and published to PyPI.
New Features
-
botocore: added
distributed_tracing
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()
withddtrace-run
by setting the environment variableDD_GEVENT_PATCH_ALL=true
. This ensures that gevent patching is done as early as possible in the application. -
botocore: inject distributed tracing data to
ClientContext
to trace lambda invocations. -
botocore: inject tracing data to
MessageAttributes
. -
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
url
parameter to theProfiler
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
DD_PROFILING_MEMALLOC=0
as an environment variable. -
The profiler now uses the tracer configuration if no configuration is provided.
-
pytest integration. This enables the
pytest <https://pytest.org>
_ runner to trace test executions.
Upgrade Notes
-
Context.get()
has been removed and the functionality has been rolled intoContext.close_span()
. -
Tracer.record()
has similarly been removed as it is no longer useful withContext.get()
removed. -
The deprecated compatibility module
ddtrace.profile
has been removed. -
The profiler now uses the tracer configuration if no configuration is provided.
Deprecation Notes
-
The
pyddprofile
wrapper is deprecated. UseDD_PROFILING_ENABLED=true ddtrace-run
instead. -
The profiler does not catch uncaught exception anymore.
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 Notes
- Start-up logs are now disabled by default. To enable start-up logs use
DD_TRACE_STARTUP_LOGS=true
orDD_TRACE_DEBUG=true
.