github DataDog/dd-trace-py v1.6.0
1.6.0

latest releases: v2.16.2, v2.17.0rc1, v2.16.1...
2 years ago

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. To track the status, see the Support Python 3.11 issue on GitHub.

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: 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 if request.user is authenticated.
  • 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 of Span.set_tag() when the value can be coerced to unicode text.
  • Enable telemetry <Instrumentation Telemetry> collection when tracing is enabled.
  • ASM: now http.client_ip and network.client.ip will only be collected if ASM is enabled.
  • tracer: added support for Python 3.11.

Upgrade Notes

  • Pin attrs dependency to version >=20 due to incompatibility with cattrs version 22.1.0.
  • Use Span.set_tag_str() instead of Span.set_tag() when the tag value is a text type as a performance optimizations in manual instrumentation.
  • Python 3.11: Continuous Profiler and Dynamic Instrumentation must be disabled as they do not currently support Python 3.11.

Bug Fixes

  • 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 label key, instead of  key, and value val).
  • 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.
  • Fix issue with attrs and contextlib2 version constraints for Python 2.7.
  • tracing: make ddtrace.context.Context serializable which fixes distributed tracing across processes.
  • flask: add support for flask v2.3. Remove deprecated usages of flask._app_ctx_stack and flask._request_ctx_stack.
  • CGroup file parsing was fixed to correctly parse container UUID for PCF containers.
  • django: avoid SynchronousOnlyOperation when failing to retrieve user information.

Other Notes

  • tracing: add http.route tag to root span for Flask framework.

Don't miss a new dd-trace-py release

NewReleases is sending notifications on new releases.