The default propagation style configuration changes to DD_TRACE_PROPAGATION_STYLE=tracecontext,datadog. To only support Datadog propagation and retain the existing default behavior, set DD_TRACE_PROPAGATION_STYLE=datadog.
The configured styles in DD_TRACE_PROPAGATION_STYLE_EXTRACT are now evaluated in order to specification. To keep the previous fixed evaluation order, set: DD_TRACE_PROPAGATION_STYLE_EXTRACT=datadog,b3,b3 single header.
tracing: upgrades the default trace API version to v0.5 for non-Windows systems. The v0.5 trace API version generates smaller payloads, thus increasing the throughput to the Datadog agent especially with larger traces.
tracing: configuring the v0.5 trace API version on Windows machines will raise a RuntimeError due to known compatibility issues. Please see DataDog/dd-trace-py#4829 for more details.
Deprecation Notes
propagation: Configuration of propagation style with DD_TRACE_PROPAGATION_STYLE=b3 is deprecated and will be removed in version 2.0.0. Please use the newly added DD_TRACE_PROPAGATION_STYLE=b3multi instead.
aws: The boto, botocore and aiobotocore integrations no longer include all API parameters by default. To retain the deprecated behavior, set the environment variable DD_AWS_TAG_ALL_PARAMS=1. The deprecated behavior and environment variable will be removed in v2.0.0.
New Features
django: add configuration option to allow a resource format like {method}{handler}.{url_name} in projects with Django <2.2.0
django: Adds the DD_DJANGO_INCLUDE_USER_NAME option to toggle whether the integration sets the django.user.name tag.
Added environment variable DD_TRACE_PROPAGATION_STYLE to configure both injection and extraction propagation styles. The configured styles can be overridden with environment variables DD_TRACE_PROPAGATION_STYLE_INJECT and DD_TRACE_PROPAGATION_STYLE_EXTRACT.
tracing: This introduces none as a supported propagator for trace context extraction and injection. When none is the only propagator listed, the corresponding trace context operation is disabled. If there are other propagators in the inject or extract list, the none propagator has no effect. For example DD_TRACE_PROPAGATION_STYLE=none
tracing: Adds support for W3C Trace Context propagation style for distributed tracing. The traceparent and tracestate HTTP headers are enabled by default for all incoming and outgoing HTTP request headers. The Datadog propagation style continue to be enabled by default.
flask: Adds support for streamed responses. Note that two additional spans: flask.application and flask.response will be generated.
profiling: Adds support for Python 3.11.
celery: Enhances context tags containing dictionaries so that their contents are sent as individual tags (issue #4771).
ASM: One click activation enabled by default using Remote Configuration Management (RCM). Set DD_REMOTE_CONFIGURATION_ENABLED=false to disable this feature.
Bug Fixes
ASGI: response headers are correctly processed instead of ignored
ASM: Do not raise exceptions when failing to parse XML request body.
ASM: fix a body read problem on some corner case where don't passing the content length makes wsgi.input.read() blocks.
aws: We are reducing the number of API parameters that the boto, botocore and aiobotocore integrations collect as span tags by default. This change limits span tags to a narrow set of parameters for specific AWS APIs using standard tag names. To opt out of the new default behavior and collect no API parameters, set the environment variable DD_AWS_TAG_NO_PARAMS=1. To retain the deprecated behavior and collect all API parameters, set the environment variable DD_AWS_TAG_ALL_PARAMS=1.
Remove forbiddenfruit as dependency and rollback wrapt changes where forbiddenfruit was called. IAST: Patch builtins only when IAST is enabled.
httpx: Fixes an incompatibility from httpx==0.23.1 when the URL.raw property is not available.
Fix error in patching functions. forbiddenfruit package has conflicts with some libraries such as asynctest. This conflict raises AttributeError exception. See issue #4484.
tracer: This fix resolves an issue where the rate limiter used for span and trace sampling rules did not reset the time since last call properly if the rate limiter already had max tokens. This fix resets the time since last call always, which leads to more accurate rate limiting.
Ensure that worker threads that run on start-up are recreated at the right time after fork on Python < 3.7.
tracing: This fix resolves an issue where the DD_SERVICE_MAPPING mapped service names were not used when updating span metadata with the DD_VERSION set version string.
wsgi: This fix resolves an issue where BaseException raised in a WSGI application caused spans to not be submitted.
library injection: Pin the library version in the library injection image. Prior, the latest version of ddtrace would always be installed, regardless of the image version.
Fix error in the agent response payload when the user disabled ASM in a dashboard using 1-click Remote Configuration.
The specification of DD_TRACE_PROPAGATION_STYLE_EXTRACT now respects the configured styles evaluation order. The evaluation order had previously been fixed and so the configured order was ignored.
tracing: Ensures that encoding errors due to wrong span tag types will be logged. Previously, if non-text span tags were set, this resulted in v0.5 encoding errors to be output to stderr instead of to a logger.
dynamic instrumentation: Remove unnecessary log line from application start up
botocore: Before this change, the botocore integration stripped newlines from the JSON string encoded in the data blob of Amazon Kinesis records. This change includes a terminating newline if it is present in the decoded data.
telemetry: This fix resolves an issue when we try to fetch platform.libc_ver() on an unsupported system.
Known Issues
profiling: There is currently a known performance regression issue with the profiler's code provenance feature. Note that this feature is disabled by default and will only be enabled if DD_PROFILING_ENABLE_CODE_PROVENANCE is set to true.
... (truncated)
Commits
ced65df fix(profiler): revert code provenance enabled by default [backport #4876 to 1...
938f786 fix: parse datetime isoformat in python2 [backport #4874 to 1.7] (#4879)
b63f2b8 chore(w3c): replace ~ with _ and = with ~ (#4822) [backport #4822 to 1.7] (#4...
6829075 ci(snowflake): pin cryptography [backport #4857 to 1.7] (#4862)
68906ee chore(dynamic_instrumentation): remove unnecessary log line (#4850)
e2da648 chore(w3c): update tracestate tag regex (backport #4827) (#4836)
afb4141 fix(tracing): disallow v0.5 api usage for windows machines (backports #4830 t...
505fcd1 chore(asm): change default value for remote config env var [backport #4813 to...
f9c3dde chore(iast): remote config thread workaround for gevent [backport #4749 to 1....
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Bumps ddtrace from 1.6.4 to 1.7.0.
Release notes
Sourced from ddtrace's releases.
... (truncated)
Commits
ced65df
fix(profiler): revert code provenance enabled by default [backport #4876 to 1...938f786
fix: parse datetime isoformat in python2 [backport #4874 to 1.7] (#4879)b63f2b8
chore(w3c): replace ~ with _ and = with ~ (#4822) [backport #4822 to 1.7] (#4...6829075
ci(snowflake): pin cryptography [backport #4857 to 1.7] (#4862)68906ee
chore(dynamic_instrumentation): remove unnecessary log line (#4850)e2da648
chore(w3c): update tracestate tag regex (backport #4827) (#4836)afb4141
fix(tracing): disallow v0.5 api usage for windows machines (backports #4830 t...505fcd1
chore(asm): change default value for remote config env var [backport #4813 to...f9c3dde
chore(iast): remote config thread workaround for gevent [backport #4749 to 1....5f24aed
chore(ci): remove test_latest workflow (backport #4792) (#4826)Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)