Skip to content

Releases: DataDog/dd-trace-py

4.10.5

17 Jun 20:19
95e8862

Choose a tag to compare

Bug Fixes

  • tracing: This fix resolves an issue where traces buffered before os.fork() could be sent twice, once by the parent and once by the child.

  • LLM Observability: Resolves an issue where the OpenAI integration recorded unset request parameters (OpenAI SDK's Omit/NotGiven sentinel values) as noise in LLM span metadata.

  • profiling: Rare crashes that could happen post-fork in fork-based applications have been fixed.

4.9.3

17 Jun 20:19
89ff0ed

Choose a tag to compare

Bug Fixes

  • tracing: This fix resolves an issue where traces buffered before os.fork() could be sent twice, once by the parent and once by the child.

  • profiling: Rare crashes that could happen post-fork in fork-based applications have been fixed.

4.8.10

17 Jun 20:19
f26c09a

Choose a tag to compare

Bug Fixes

  • tracing: This fix resolves an issue where traces buffered before os.fork() could be sent twice, once by the parent and once by the child.

  • profiling: Rare crashes that could happen post-fork in fork-based applications have been fixed.

4.11.0rc3

11 Jun 08:22
a4986ed

Choose a tag to compare

4.11.0rc3 Pre-release
Pre-release

New Features

  • LLM Observability: Adds support for DD_LLMOBS_SAMPLE_RATE, which controls the proportion of LLM Observability spans (between 0.0 and 1.0, defaults to 1.0) that are retained. This does not affect APM span retention or the accuracy of LLM Observability metrics such as token usage, and cost.

4.10.4

10 Jun 13:37
3ea8fe9

Choose a tag to compare

Bug Fixes

  • LLM Observability: Fixes agentless export dropping data on the us3, us5, ap1, and ap2 Datadog sites. This affected customers on these sites when no Datadog Agent was running or agentless export was explicitly enabled (DD_LLMOBS_AGENTLESS_ENABLED=1).

  • runtime metrics: Fixes an issue where runtime metrics were missing container and orchestrator tags (such as pod_name) on hosts using cgroup v2.

  • IAST: A crash that could happen at interpreter teardown has been fixed.

  • profiling: A rare crash that could happen after fork in fork-based applications has been fixed.

  • tracing: Fixes a bug where running ddtrace-run caused a traceback on keyboard interrupt.

4.9.2

11 Jun 06:57
4b1cd09

Choose a tag to compare

Bug Fixes

  • runtime metrics: Fixes an issue where runtime metrics were missing container and orchestrator tags (such as pod_name) on hosts using cgroup v2.

  • IAST: A crash that could happen at interpreter teardown has been fixed.

  • profiling: A rare crash that could happen after fork in fork-based applications has been fixed.

4.11.0rc2

10 Jun 13:37
557b664

Choose a tag to compare

4.11.0rc2 Pre-release
Pre-release

Upgrade Notes

  • LLM Observability: when APM and LLMObs are both enabled, the APM trace writer now uses the v0.4 trace API version (v0.5 cannot carry the LLMObs span data). Setting DD_TRACE_API_VERSION=v0.5 with LLMObs enabled logs a warning and downgrades to v0.4. No user action is required.

New Features

  • LLM Observability: LLM span data can now be exported to the Datadog Agent over the APM trace, and is reliably delivered even when the APM trace is not sampled. This has no effect on APM sampling decisions or billing.
  • This change adds the ability to override a manually installed tracer for Single Step Instrumentation. When this is set, all ddtrace packages will be preferred over the user installed packages. For example, wrapt, bytecode, and others. To ensure the injected library takes precedence, DD_INJECT_EXPERIMENTAL_OVERRIDE_USER_DDTRACE=true can be added to the environment.

Bug Fixes

  • LLM Observability: Fixes agentless export dropping data on the us3, us5, ap1, and ap2 Datadog sites. This affected customers on these sites when no Datadog Agent was running or agentless export was explicitly enabled (DD_LLMOBS_AGENTLESS_ENABLED=1).
  • tracing: Fixes a race condition where extra service names could be silently dropped from Remote Configuration /v0.7/config payloads in multi-threaded applications (e.g. uWSGI).
  • code origin: fixed an issue that could have caused pytest to crash internally when inspecting the call stack from an exception thrown by a view function when Code Origin is enabled.
  • LLM Observability: Fixes an issue where spans with very large JSON depth nested fields were being submitted but dropped by Datadog. The LLM Observability integration now detects nested fields that exceed the allowed depth and stringifies them, ensuring spans will not be dropped due to JSON depth limits in Datadog.
  • IAST: A crash that could happen at interpreter teardown has been fixed.
  • protobuf: This fix resolves an issue where Data Streams Monitoring schema tags were missing from protobuf spans due to incorrect patching of generated message classes.

4.8.9

10 Jun 08:28
4506c14

Choose a tag to compare

Bug Fixes

  • runtime metrics: Fixes an issue where runtime metrics were missing container and orchestrator tags (such as pod_name) on hosts using cgroup v2.
  • code origin: fixed an issue that could have caused pytest to crash internally when inspecting the call stack from an exception thrown by a view function when Code Origin is enabled.
  • IAST: A crash that could happen at interpreter teardown has been fixed.
  • profiling: A rare crash that could happen after fork in fork-based applications has been fixed.

4.10.3

05 Jun 20:01
40b7c0c

Choose a tag to compare

Bug Fixes

  • CI Visibility: fix the default HTTP timeout for backend requests from 15 seconds to 30 seconds, and add the DD_CIVISIBILITY_BACKEND_API_TIMEOUT_MILLIS environment variable (previously missing) to override it. The value is expressed in milliseconds (e.g. 60000 for 60 seconds), consistent with the Java tracer. The same timeout now applies uniformly to all backend requests, including skippable test fetches.
  • pydantic_ai: Fixes APM span naming so the operation name is the generic category (pydantic_ai.tool / pydantic_ai.agent) and the resource name is the specific tool or agent name, matching Datadog APM convention. This restores per-tool and per-agent grouping on APM service and resource pages. LLM Observability views are unaffected.
  • sqlalchemy: Fixes duplicate SQLAlchemy event listeners when trace_engine() is called repeatedly for the same engine.
  • LLM Observability: Fixes an issue where spans with very large JSON depth nested fields were being submitted but dropped by Datadog. The LLM Observability integration now detects nested fields that exceed the allowed depth and stringifies them, ensuring spans will not be dropped due to JSON depth limits in Datadog.

4.9.1

08 Jun 08:01
45e1cb0

Choose a tag to compare

Bug Fixes

  • AAP: This fix resolves an issue where the AppSec body-parsing hook consumed the websocket.connect ASGI message, causing ASGI/FastAPI WebSocket connections to fail with HTTP 500 w
    hen AppSec was enabled.
  • CI Visibility: fix the default HTTP timeout for backend requests from 15 seconds to 30 seconds, and add the DD_CIVISIBILITY_BACKEND_API_TIMEOUT_MILLIS environment variable (previ
    ously missing) to override it. The value is expressed in milliseconds (e.g. 60000 for 60 seconds), consistent with the Java tracer. The same timeout now applies uniformly to all ba
    ckend requests, including skippable test fetches.
  • tracing: Fixes a race condition where extra service names could be silently dropped from Remote Configuration /v0.7/config payloads in multi-threaded applications (e.g. uWSGI).
  • LLM Observability: Fixes an issue where reasoning_content was missing from streamed chat completions in the OpenAI and LiteLLM integrations when an OpenAI-compatible reasoning pr
    ovider (e.g. DeepSeek, Qwen) emitted delta.reasoning_content chunks. The aggregated message now captures reasoning text in the output message, matching non-streaming behavior.
  • Fixed an issue that could have caused some timers, like the one responsible for Symbol Database uploads, to fire repeatedly after the first execution.
  • internal: This fix resolves a memory leak where reference cycles through PeriodicThread callbacks were invisible to Python's cyclic garbage collector and could accumulate when th
    reads used bound methods as targets.
  • profiling: Fixes a memory leak in native frame tracking caused by unbounded native call-site metadata growth.
  • SCA: This fix resolves an issue where unresolved runtime reachability targets could accumulate across Software Composition Analysis updates, causing resident memory usage to grow o
    ver time.
  • sqlalchemy: Fixes duplicate SQLAlchemy event listeners when trace_engine() is called repeatedly for the same engine.
  • dynamic instrumentation: fixes an issue where the Symbol Database uploader sends empty payloads on a recurring timer.
  • code origin: fixed an issue that could have caused pytest to crash internally when inspecting the call stack from an exception thrown by a view function when Code Origin is enabled