Change8

v4.7.0rc1

📦 datadog-sdkView on GitHub →
19 features🐛 11 fixes🔧 30 symbols

Summary

This release introduces significant feature enhancements across MLFlow integration, AI Guard, LLM Observability, and adds process tag propagation across many components. Several bug fixes address issues in CI Visibility, tracing context handling, and profiler stability.

Migration Steps

  1. To disable the new process tag propagation feature across various components (profiling, runtime metrics, remote config, etc.), set the environment variable `DD_EXPERIMENTAL_PROPAGATE_PROCESS_TAGS_ENABLED=false`.
  2. To enable telemetry debug mode, set the environment variable `DD_INTERNAL_TELEMETRY_DEBUG_ENABLED=true` instead of using `DD_TRACE_DEBUG=true`.
  3. If using AI Guard evaluation blocking, note that `block` now defaults to `True`; pass `block=False` if you wish to revert to non-blocking behavior.

✨ New Features

  • Adds a request header provider (auth plugin) for MLFlow, sending DD-API-KEY and DD-APPLICATION-KEY headers if environment variables are set.
  • AI Guard calls to evaluate now block by default if blocking is enabled in the UI; this can be disabled with `block=False`.
  • AI Guard API client now returns Sensitive Data Scanner (SDS) results in the SDK response.
  • Introduces AI Guard support for Strands Agents (requires `strands-agents>=1.29.0` for Plugin API).
  • Add tracing support for Azure Durable Functions, tracing durable activity and entity functions.
  • Adds process tags to profiler payloads (can be deactivated with `DD_EXPERIMENTAL_PROPAGATE_PROCESS_TAGS_ENABLED=false`).
  • Adds process tags to runtime metrics tags (can be deactivated with `DD_EXPERIMENTAL_PROPAGATE_PROCESS_TAGS_ENABLED=false`).
  • Adds process tags to remote configuration payloads (can be deactivated with `DD_EXPERIMENTAL_PROPAGATE_PROCESS_TAGS_ENABLED=false`).
  • Adds process tags to debugger payloads (dynamic instrumentation) (can be deactivated with `DD_EXPERIMENTAL_PROPAGATE_PROCESS_TAGS_ENABLED=false`).
  • Adds process tags to crash tracking payloads (can be deactivated with `DD_EXPERIMENTAL_PROPAGATE_PROCESS_TAGS_ENABLED=false`).
  • Adds process tags to Data Streams Monitoring payloads (can be deactivated with `DD_EXPERIMENTAL_PROPAGATE_PROCESS_TAGS_ENABLED=false`).
  • Adds process tags to Database Monitoring SQL service hash propagation (can be deactivated with `DD_EXPERIMENTAL_PROPAGATE_PROCESS_TAGS_ENABLED=false`).
  • Adds process tags to stats computation payloads (can be deactivated with `DD_EXPERIMENTAL_PROPAGATE_PROCESS_TAGS_ENABLED=false`).
  • LLM Observability: Experiment tasks can optionally receive dataset record metadata as a third `metadata` parameter.
  • LLM Observability: Introduces `RemoteEvaluator` to reference LLM-as-Judge evaluations configured in the Datadog UI by name during local experiments.
  • LLM Observability: Adds cache creation breakdown metrics for the Anthropic integration (`ephemeral_5m_input_tokens` and `ephemeral_1h_input_tokens`).
  • LLM Observability: Adds support for reasoning and extended thinking content in Anthropic, LiteLLM, and OpenAI-compatible integrations.
  • Tracer: Introduces API endpoint discovery support for Tornado applications.
  • Adds process tags to trace payloads (can be deactivated with `DD_EXPERIMENTAL_PROPAGATE_PROCESS_TAGS_ENABLED=false`).

🐛 Bug Fixes

  • CI Visibility: Fixes an issue where pytest plugins `pytest-rerunfailures` and `flaky` were silently overridden by the ddtrace plugin; external rerun plugins now drive retries when related features are disabled.
  • CI Visibility: Fixed missing ITR tags in the new pytest plugin that caused time saved by Test Impact Analysis to not appear in dashboards.
  • Tracing: Resolves an issue where a `RuntimeError` could be raised when iterating over the `context._meta` dictionary during span creation or distributed trace generation.
  • Tracing: Fixes an issue where telemetry debug mode was incorrectly enabled by `DD_TRACE_DEBUG` instead of `DD_INTERNAL_TELEMETRY_DEBUG_ENABLED`.
  • LLM Observability: Resolves an issue where `cache_creation_input_tokens` and `cache_read_input_tokens` were not captured when using LiteLLM integration with prompt caching providers.
  • Profiling: Fixes an issue where enabling the profiler with gevent workers caused gunicorn to skip graceful shutdown on `SIGTERM`.
  • Profiling: Fix potential reentrant crashes in the memory profiler by avoiding object allocations and frees during stack unwinding inside the allocator hook.
  • Profiling: The Profiler now correctly flushes profiles at most once per upload interval.
  • Profiling: Fixes an `AttributeError` crash when lock or stack profiler encountered `_DummyThread` instances by falling back to thread identifier when `native_id` is unavailable.
  • Lock acquire samples are now only recorded if the `acquire` call was successful.
  • Fix for potential crashes at process shutdown due to incorrect detection of the VM finalization state when stopping periodic worker threads.

Affected Symbols