github DataDog/dd-trace-py v1.5.0
1.5.0

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

Prelude

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.

New Features

  • Introduced the public interface for the dynamic instrumentation service. See Configuration for more details.
  • Enable telemetry collection when tracing is enabled.
  • graphene: add support for graphene>=2. See the graphql documentation for more information.
  • Add support for aiobotocore 1.x and 2.x.
  • ASM: add user information to traces.
  • ASM: collect http client_ip.
  • ASM: configure the sensitive data obfuscator.
  • ASM: Detect attacks on Pylons body.
  • ASM: propagate user id.
  • ASM: Support In-App WAF metrics report.
  • Collect user agent in normalized span tag http.useragent.
  • ASM: Detect attacks on XML body (for Django, Pylons and Flask).
  • Adds support for Lambda profiling, which can be enabled by starting the profiler outside of the handler (on cold start).
  • profiler: collect and export the class name for the wall time, CPU time and lock profiles, when available.
  • add DD_PYMONGO_SERVICE configuration
  • ASM: Redact sensitive query strings if sent in http.url.
  • redis: track the connection client_name.
  • rediscluster: add service name configuration with DD_REDISCLUSTER_SERVICE
  • snowflake: add snowflake query id tag to sql.query span

Bug Fixes

  • 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).
  • ASM: fix a conflict with another backport of ipaddress by using the same lib.
  • aioredis: added exception handling for CancelledError in the aioredis integration.
  • aiohttp_jinja2: use app_key to look up templates.
  • ASM: (flask) avoid json decode error while parsing request body.
  • ASM: fix Python 2 error reading WAF rules.
  • ASM: reset wsgi input after reading.
  • tracing: fix handling of unicode _dd.origin tag for Python 2
  • tracing: fix nested web frameworks re-extracting and activating HTTP context propagation headers.
  • requests: fix split-by-domain service name when multiple @ signs are present in the url
  • profiling: internal use of RLock needs to ensure original threading locks are used rather than gevent threading lock. Because of an indirection in the initialization of the original RLock, we end up getting an underlying gevent lock. We work around this behavior with gevent by creating a patched RLock for use internally.
  • profiler: Remove lock for data structure linking threads to spans to avoid deadlocks with the trade-off of correctness of spans linked to threads by stack profiler at a given point in time.
  • profiling: fix a possible deadlock due to spans being activated unexpectedly.

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

NewReleases is sending notifications on new releases.