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
- 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