Change8

v4.7.0rc5

📦 datadog-sdkView on GitHub →
23 features🐛 1 fixes🔧 12 symbols

Summary

This release significantly enhances LLM Observability features, introduces AI Guard integration for AWS Strands Agents, and optimizes profiling performance via Cython compilation. Several components now propagate process tags for better context.

Migration Steps

  1. Update minimum required version of `openfeature-sdk` to 0.8.0 or higher.
  2. If using AI Guard Strands Agents integration, prefer the Plugin API by ensuring `strands-agents>=1.29.0` and using `AIGuardStrandsPlugin()` instead of the legacy `AIGuardStrandsHookProvider()`.
  3. When using LLM Observability Dataset methods for tags, note that tag operations (add/remove/replace) require an integer index and a list of strings in 'key:value' format.

✨ New Features

  • Adds a request header provider (auth plugin) for MLFlow, including DD-API-KEY and DD-APPLICATION-KEY headers if environment variables are set.
  • AI Guard evaluation calls now block by default if blocking is enabled in the UI; this can be disabled with `block=False`.
  • AI Guard SDK response now includes Sensitive Data Scanner (SDS) results.
  • Introduces AI Guard support for the AWS Strands Agents SDK via Plugin API (recommended, requires strands-agents >= 1.29.0) and HookProvider API (legacy).
  • Adds tracing support for Azure Durable Functions, tracing durable activity and entity functions.
  • Adds process tags to profiler payloads (can be deactivated via DD_EXPERIMENTAL_PROPAGATE_PROCESS_TAGS_ENABLED=false).
  • Adds process tags to runtime metrics tags (can be deactivated via DD_EXPERIMENTAL_PROPAGATE_PROCESS_TAGS_ENABLED=false).
  • Adds process tags to remote configuration payloads (can be deactivated via DD_EXPERIMENTAL_PROPAGATE_PROCESS_TAGS_ENABLED=false).
  • Adds process tags to debugger payloads (can be deactivated via DD_EXPERIMENTAL_PROPAGATE_PROCESS_TAGS_ENABLED=false).
  • Adds process tags to crash tracking payloads (can be deactivated via DD_EXPERIMENTAL_PROPAGATE_PROCESS_TAGS_ENABLED=false).
  • Adds process tags to Data Streams Monitoring payloads (can be deactivated via DD_EXPERIMENTAL_PROPAGATE_PROCESS_TAGS_ENABLED=false).
  • Adds process tags to Database Monitoring SQL service hash propagation (can be deactivated via DD_EXPERIMENTAL_PROPAGATE_PROCESS_TAGS_ENABLED=false).
  • Adds process tags to stats computation payloads (can be deactivated via DD_EXPERIMENTAL_PROPAGATE_PROCESS_TAGS_ENABLED=false).
  • LLM Observability: Adds support for capturing stop_reason and structured_output from the Claude Agent SDK integration.
  • LLM Observability: Adds support for user-defined dataset record IDs via an optional 'id' field in dataset creation/appending methods, or via the new 'id_column' parameter in create_dataset_from_csv().
  • LLM Observability: Experiment tasks can now 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 (ephemeral_5m_input_tokens, ephemeral_1h_input_tokens) for the Anthropic integration when prompt caching is used.
  • LLM Observability: Adds support for reasoning and extended thinking content in Anthropic, LiteLLM, and OpenAI-compatible integrations.
  • LLM Observability: LLMJudge now forwards extra client_options to the underlying provider client constructor.
  • LLM Observability: Adds three new Dataset methods for tag management: dataset.add_tags, dataset.remove_tags, and dataset.replace_tags.
  • LLM Observability: Changes experiment execution to run evaluators immediately after each record's task completes instead of batching, posting spans/metrics incrementally.
  • LLM Observability: Adds support for Pydantic AI evaluations in LLM Observability Experiments.

🐛 Bug Fixes

  • Flag evaluations for non-existent flags now return Reason.ERROR with ErrorCode.FLAG_NOT_FOUND instead of Reason.DEFAULT when configuration is available but the flag is not found (preserves Reason.DEFAULT when no configuration is loaded).

Affected Symbols