New Features
-
ASM: dependency telemetry metrics now will only report dependencies actually in use (imported) and will also report new imported modules periodically.
-
ASM: This introduces Threat Monitoring and Blocking on FastAPI.
- IP Blocking and all input addresses are supported on requests and responses
- Custom Blocking (This does not contain user blocking specific features yet).
-
Vulnerability Management for Code-level (IAST): Adds Python 3.12 compatibility
-
tracing: Introduces support for OpenTracing Baggage Items with HTTP Propagation. Enable this support by
DD_TRACE_PROPAGATION_HTTP_BAGGAGE_ENABLED=true
. TheContext._set_baggage_item
andContext._get_baggage_item
internal methods are provided for manual modifications to the Baggage Items. These API changes are subject to change. -
dynamic instrumentation: Add support for more built-in container types, such as
defaultdict
,frozenset
,OrderedDict
andCounter
. -
Optionally lazy loads and disables Instrumentation Telemetry. Users must explicitly set "DD_INSTRUMENTATION_TELEMETRY_ENABLED=false".
-
tracer: Add support for remotely setting the trace sample rate from the Datadog UI. This functionality is enabled by default when using
ddtrace-run
and library injection. To enable it when using the library manually, useddtrace.config.enable_remote_config()
.
Upgrade Notes
-
This removes the
pylons
integration, which does not support Python 3.
Deprecation Notes
- aioredis: The aioredis integration is deprecated and will be removed in a future version. As an alternative to the aioredis integration, you can use the redis integration with redis>=4.2.0.
Bug Fixes
- ASM: This fix resolves an issue where IAST could cause circular dependency at startup.
- Vulnerability Management for Code-level (IAST): Cookies vulnerabilities are only reported if response cookies are insecure.
- Vulnerability Management for Code-level (IAST): Fix propagation error on
.format
string method. - Vulnerability Management for Code-level (IAST): Ensure that Cookies vulnerabilities report only the cookie name.
- Vulnerability Management for Code-level (IAST): This fix resolves an issue where certain aspects incorrectly expected at least one argument, leading to an IndexError when none were provided. The solution removes this constraint and incorporates regression tests for stability assurance.
- tracing: Resolves span encoding errors raised when span links do not contain expected types
- tracer: tag spans that have been sampled due to an Agent sampling configuration.
- lambda: This change disables the use of
multiprocessing.queue
in Lambda, because it is not supported in Lambda - langchain: This fix resolves a crash that could occur during embedding when no embeddings are found.
- Fix a regression with the support for gevent that could have occurred if some products, like ASM, telemetry, were enabled.
- kafka: Resolves
TypeError
raised by serializing producers and deserializing consumers when themessage.key
tag is set on spans. - dynamic instrumentation: Fix an issue that caused the instrumented application to fail to start if a non-standard module was imported.
- openai: This fix resolves an issue where tagging image inputs in the chat completions endpoint resulted in attribute errors.
- openai: This fix resolves an issue where requesting raw API responses from openai>=1.0 resulted in attribute errors while tagging.
- profiling: Fix an issue that prevented threading locks from being traced when using gevent.
- profiling: Fix a segmentation fault with CPython 3.12 when sampling thread stacks.
- pylibmc: Fixes an issue where using
ddtrace-run
orddtrace.patch_all()
withDD_TRACE_ENABLED=False
would break with get, gets, and get_multi operations on pylibmc Clients. - tracing: This fix resolves an issue where concurrent mutations to the
context._meta
dict caused RuntimeError: dictionary changed size during iteration. - django: Resolves
AttributeError
raised by tracedStreamingHttpResponse
. - requests: Updates the resource names of
requests.requests
spans to include the method and path of the request. - propagation: This fix resolves an issue where a
Context
generated from extracted headers could lack a span_id or trace_id, leadingSpanLink
encoding errors. - psycopg: This fix resolves an issue where a circular import of the psycopg library could cause a crash during monkeypatching.
- psycopg: This fix resolves an issue where exceptions originating from asynchronous Psycopg cursors were not propagated up the call stack.
- redis: This fix resolves an issue where the yaaredis and aredis integrations imported code from the redis integration, causing a circular import error.
- tracing: Resolves trace encoding errors raised when
DD_TRACE_API_VERSION
is set tov0.5
and a BufferFull Exception is raised by the TraceWriter. This fix ensures span fields are not overwritten and reduces the frequency of 4XX errors in the trace agent.
Other Changes
- tracing: Upgrades the trace encoding format to v0.5. This change improves the performance of encoding and sending spans.