Deprecation Notes
- tracing: Using
[]
for DD_TRACE_METHODS (mymod.mysubmod.myclass[myfunc,otherfunc];...
) is deprecated and will be removed in 3.0.0. - This deprecates the passing in of methods or regex patterns for
service
,name
, andresource
for sampling rules. Please use the new Glob matching support instead.
New Features
- asgi: Trace websockets in asgi middleware behind feature flag. Set
DD_ASGI_TRACE_WEBSOCKET=true
to enable. - tracing: Span and trace sampling rules are case insensitive.
- tracing: Tags provided in span and trace sampling rules now attempt to match against
span._metrics
in addition tospan._meta
, which was previously the only supported field. - dbm: adds new ddh and dddb SQL comment attributes to enable connection with APM when using peer.service.
- tracing: Updates DD_TRACE_METHODS to use a new notation with
:
to differentiate between the base module and the method name (mymod.mysubmod:myclass.myfunc,myclass.otherfunc;...
) - tracing: This adds the
Datadog-Entity-ID
header to payloads sent to the Datadog Agent. This header can be set to the container ID or the container's cgroup node inode, and serves as a unique identifier for containers running under Linuxcgroupv2
. - tracing: This introduces Glob matching support for
service
,name
, andresource
passed in with envarDD_TRACE_SAMPLE_RULES
. Previously, the service, name, and resource were matched using exact string matching. - lib-injection: Adds supports for installing ddtrace via single step instrumentation on python3.12
Bug Fixes
- tracing: This fix resolves an issue where previously some traces that were not sampled were not sent to the trace-agent, possibly affecting metrics. With this fix, all traces are sent to the agent.
- IAST: fix potentially empty ranges after executing the decode aspect.
- CI Visibility: fixes issues with pytest~=8.0 that would case crashes in certain scenarios, and returned different module names
- CI Visibility: fix a potential crash for Python<3.10 when a socket.timeout error was raised instead of the expected TimeoutError during CI Visibility API requests
- CI Visibility: This fix makes the CI Visibility system resilient to RuntimeErrors that can occur between pytest tests with coverage enabled.
- IAST: don't patch BytesIO since we don't have any aspects for it.
- tracing: This fix resolves an issue where the tracer could throw an uncaught error during process shutdown.
- botocore: Fixes bug where SQS and Kinesis results and errors were not recorded when
DD_BOTOCORE_EMPTY_POLL_ENABLED=false
.config.botocore.empty_poll_enabled=false
and no records were found. - profiling: fixes an issue that could have caused the profiler to stop if unable to determine the class name of a profiled function with CPython 3.11 and newer.
- tracing: Resolves telemetry import error raised when
DD_INSTRUMENTATION_TELEMETRY_ENABLED
is set toFalse
. - ASM: This fix resolves an issue where rules updated through remote config were not properly updating required waf addresses. This could lead to custom rules being ignored.
- ASM: This fix resolves an issue where remote config update in WAF policy from block attack tools policy to monitoring only policy could be ignored by tracer.
- Vulnerability Management for Code-level (IAST): Fixes an issue where requests stopped being analyzed after some time due.
- Vulnerability Management for Code-level (IAST): Fixes issues derived from AST patching code with type annotations.
- kafka: This fix resolves an issue where the use of a Kafka
DeserializingConsumer
could result in a crash when the deserializer in use returns a type without a__len__
attribute.