Prelude
Initial library support has been added for Python 3.11. Continuous Profiler and Dynamic Instrumentation are not yet compatible and must be disabled in order to use the library with Python 3.11. Support for Continuous Profiler and Dynamic Instrumentation will be added in a future release. For full Python 3.11 support status please see: #4149
Application Security Management (ASM) has added support for preventing attacks by blocking malicious IPs using one click within Datadog.
NOTE: One click activation for ASM is currently in beta.
Dynamic instrumentation allows instrumenting a running service dynamically to extract runtime information that could be useful for, e.g., debugging purposes, or to add extra metrics without having to make code changes and re-deploy the service. See https://ddtrace.readthedocs.io/en/stable/configuration.html for more details.
New Features
- ASM: now http.client_ip and network.client.ip will only be collected if ASM is enabled.
- tracer: added support for Python 3.11.
- ASM: add support for one click activation using Remote Configuration Management (RCM). Set
DD_REMOTE_CONFIGURATION_ENABLED=true
to enable this feature. - ASM: ip address collection will be enabled if not explicitly disabled and appsec is enabled.
- tracing: HTTP query string tagged by default in http.url tag (sensitive query strings will be obfuscated).
- Django: set
usr.id
tag by default ifrequest.user
is authenticated. - dynamic instrumentation: Introduced the public interface for the dynamic instrumentation service. See https://ddtrace.readthedocs.io/en/stable/configuration.html for more details.
- Add
Span.set_tag_str()
as an alternative to the overloaded functionality ofSpan.set_tag()
when the value can be coerced to unicode text. - Enable
telemetry <Instrumentation Telemetry>
collection when tracing is enabled.
Upgrade Notes
- Python 3.11: Continuous Profiler and Dynamic Instrumentation must be disabled as they do not currently support Python 3.11.
Bug Fixes
- Fix issue with
attrs
andcontextlib2
version constraints for Python 2.7. - ASM: only report actor.ip on attack.
- aioredis: added exception handling for
CancelledError
in the aioredis integration. - CI Visibility: fixed AppVeyor integration not extracting the full commit message.
- Add iterable methods on TracedCursor. Previously these were not present and would cause iterable usage of cursors in DB API integrations to fail.
- Fix parsing of the
DD_TAGS
environment variable value to include support for values with colons (e.g. URLs). Also fixed the parsing of invalid tags that begin with a space (e.g.DD_TAGS=" key:val"
will now produce a tag with labelkey
, instead ofkey
, and valueval
). - opentracing: don't raise an exception when distributed tracing headers are not present when attempting to extract.
- sqlite3: fix error when using
connection.backup
method. - Change dependency from
backport_ipaddress` to
ipaddress. Only install
ipaddress`` for Python < 3.7. - gevent: disable gevent after fork hook which could result in a performance regression.
- profiling: restart automatically on all Python versions.
- profiling: fixes an issue with Gunicorn child processes not storing profiling events.
- wsgi: when using more than one nested wsgi traced middleware in the same app ensure wsgi spans have the correct parenting.
Other Notes
- tracing: add http.route tag to root span for Flask framework.