3.7.0
New Features
-
AAP (ASM is now AAP)
- Introduces a new user event sdk available through
ddtrace.appsec.track_user_sdk
for manual instrumentation.
- Introduces a new user event sdk available through
-
CI Visibility
- Introduces the ability to gzip the payload when using the agentless setup, incurring in less network bandwidth consumption.
-
LLM Observability
- Adds support to automatically submit LiteLLM SDK requests to LLM Observability.
-
Tracing
- baggage: Adds support for automatically adding baggage key-value pairs to span tags. Baggage items from incoming HTTP headers are attached to spans as tags with a
baggage.
prefix TheDD_TRACE_BAGGAGE_TAG_KEYS
configuration allows users to specify a comma-separated list of baggage keys for span tagging, by default the value is set touser.id,account.id,session.id
. When set to\*
, all baggage keys will be converted into span tags. Setting it to an empty value disables baggage tagging.
- baggage: Adds support for automatically adding baggage key-value pairs to span tags. Baggage items from incoming HTTP headers are attached to spans as tags with a
Bug Fixes
-
Code Security
- The field representing the class name in IAST vulnerability location reporting was previously incorrectly named as
class_name
. This fix standardizes the naming and ensures that the correct field name is used (class
).
- The field representing the class name in IAST vulnerability location reporting was previously incorrectly named as
-
Dynamic Instrumentation
- Fixes incompatibility between code origin and dynamic instrumentation probe on exit span functions.
-
LLM Observability
openai
: This fix resolves an issue where usingclient.beta.chat.completions.stream
withopenai
patching caused an attribute error.- Resolves an issue where using
client.beta.chat.completions.stream
with LLM Observability enabled caused an attribute error - Resolves an issue where tool call names were not being captured for bedrock
converse_stream
calls. - Resolves an issue where bedrock
converse_stream
calls contained an extra empty output message.
-
Profiling
- Fixes an issue where inconsistent state in the native profiler code was causing excessive log messages to be emitted at an unprecedented rate, significantly increasing the size of end-user log files.
-
Tracing
azure_functions
: Resolves an issue where async functions throw an error when instrumented.datastreams
: Resolves an issue where failure to decode the data streams context caused infinite loops in data streams checkpoints.futures
: Resolves an edge case where trace context was not propagated to spans generated by the ThreadPoolExecutor.kafka
: Fixes an issue where a producer or consumer initialized with an unpacked config resulted in TypeError, causing a failed connection.confluent-kafka
supports both unpacked and packed config; this change allows initialization with either.telemetry
: Improves periodic telemetry writer performance by removing unnecessary calls toimportlib.metadata
for reporting imported dependencies.- Fixes an issue where empty sampling rules list in remote configuration events caused an
AttributeError
when reinitializing theDatadogSampler
. This prevented sampling rules from being reset. Note: This only affected cases where sampling rules were an empty list. It did not impact cases with at least one rule or when rules were set to null. - Fixes a bug in the sampling rule matcher where the pattern
?*
was not being matched correctly forDD_TRACE_SAMPLING_RULES
tags, due to it matching on spans with no tag matching the specified key. - Fixes an issue where span attributes were not truncated before encoding, leading to runtime error and causing spans to be dropped. Spans with resource name, tag key or value larger than 25000 characters will be truncated to 2500 characters.
- Fixes
RuntimeWarning
from an unwaited coroutine during tab completion in IPython REPL whenasyncio
integration is active. Tracer now wraps anasyncio
coroutine only when there is an active trace context.