New Features
- dogpile.cache is now automatically instrumented by default.
- The Pylons now supports all the standard http tagging including query string, custom error codes, and request/response headers.
- The ddtrace pytest plugin can now call
ddtrace.patch_all
via the--ddtrace-patch-all
option. Span
now accepts aon_finish
argument used for specifying functions to call when a span finishes.- Adds support for the Datadog Lambda Extension. The tracer will send traces to the extension by default if it is present.
- Add support for space-separated
DD_TAGS
. - Add urllib3 integration.
Upgrade Notes
- The deprecated
dogstatsd_host
anddogstatsd_port
arguments totracer.configure()
have been removed. - Support for gevent 1.0 has been removed and gevent >= 1.1 is required.
- flask: deprecated configuration option
extra_error_codes
has been removed. - The deprecated
pyddprofile
wrapper has been removed. Useddtrace-run
withDD_PROFILING_ENABLED=1
set instead. - A
ValueError
will now be raised on tracer initialization if the Agent URL specified to the initializer or with the environment variableDD_TRACE_AGENT_URL
is malformed. - uWSGI is no longer supported with
ddtrace-run
due to a limitation of how tracer initialization occurs. See the updated instructions for enabling tracing in the libraryuWSGI documentation<uwsgi>
. - The unused
ddtrace.api
module has been removed.
Bug Fixes
- The
Records
parameter toFirehose
endpoint calls is being excluded from the tags to avoid generating traces with a large payload. - Tracer: fix configuring tracer with dogstatsd url.
- elasticsearch: patch versioned elasticsearch modules (elasticsearch1, ..., elasticsearch7).
- botocore: Do not assume that ResponseMeta exists in the results.
- django: handle erroneous middleware gracefully.
- The tracer now captures the task ID from the cgroups file for Fargate >= 1.4.0 and reports it to the agent as the Datadog-Container-ID tag.
- Fix a bug when tracing a mako
DefTemplate
or anyTemplate
that does not have afilename
property. - flask: fix a bug when the query string would contain non-Unicode characters.
- Fix a formatting issue on error exporting profiles.
- A workaround is provided for the problem with uWSGI worker processes failing to respawn. This can occur when using
ddtrace-run
for automatic instrumentation and configuration or manual instrumentation and configuration without the necessary uWSGI options. The problem is caused by how the tracer can end up starting threads in the master process before uWSGI forks to initialize the workers processes. To avoid this, we have provided updated instructions for enabling tracing in the library uWSGI documentation.
Other Notes
- The logic behind the header extraction for distributed tracing has been improved.
- The default connection timeout for the profiling agent has now been reduced from 10 to 2 seconds to match the tracer behavior.
- The tracemalloc memory profiler, which was disabled by default, has been removed.
- Query strings are stripped out from URLs by default when setting URL metadata on a span. This change affects all integrations that store HTTP metadata, like aiohttp, falcon, requests, urllib3.