Change8

v3.14.0rc2

📦 datadog-sdk
4 features🐛 10 fixes🔧 7 symbols

Summary

This release introduces AI Guard support for LangChain and enhances LLM Observability by making `ml_app` optional and adding tool definition support to annotations. Numerous bug fixes address issues across AAP, Django, asyncpg, exception replay, and CI Visibility.

Migration Steps

  1. If using LLM Observability, note that the argument `name` in experiments (beta) dataset methods (`create_dataset`, `create_dataset_from_csv`, and `pull_dataset`) has been renamed to `dataset_name`.

✨ New Features

  • Added AI Guard evaluations support to LangChain instrumentation.
  • Added evaluation support to streaming LangChain APIs.
  • In LLM Observability, `ml_app` is now optional and defaults to `service`. LLM Observability will no longer throw if `ml_app` is not provided or propagated.
  • Introduced a `tool_definitions` parameter to the `LLMObs.annotate()` method for tool calling scenarios, allowing users to pass a list of tool definition dictionaries directly to annotate LLM spans.

🐛 Bug Fixes

  • Ensured the status code for downstream requests is properly sent to libddwaf (AAP).
  • Resolved an incompatibility with gevent>=25.8.1 that caused a deadlock when starting the waf via remote config (AAP).
  • Fixed `ValueError: coroutine already executing` on Python 3.13+ with `django.utils.decorators.async_only_middleware`.
  • Fixed an error in asyncpg related to using custom connect options, ensuring postgres.connect spans are created when this option is used.
  • Fixed an issue in exception replay that prevented snapshots from retrieving local variables from traceback frames of exceptions thrown by Celery tasks.
  • Resolved an issue in LLM Observability where decorated functions returning responses with ambiguous truth values (e.g., pandas dataframes) would raise an error.
  • Fixed an issue where certain Google GenAI LLM requests were not being traced due to importing from google.genai.types on startup (LLM Observability).
  • Fixed an issue that could have caused some products to fail to start properly in applications using `pkg_resources`.
  • Upgraded echion to incorporate critical bug fixes and performance improvements (profiling).
  • Resolved an issue in CI Visibility where coverage from sessions using pytest-xdist was not submitted with the proper session ID, affecting Test Impact Analysis.

🔧 Affected Symbols

LLMObs.annotatecreate_datasetcreate_dataset_from_csvpull_datasetdjango.utils.decorators.async_only_middlewareasyncpg.connectgoogle.genai.types