Estimated end-of-life date, accurate to within three months: 05-2027
See the support level definitions for more information.
Deprecation Notes
- LLM Observability
- Removes support for the RAGAS integration. As an alternative, if you have RAGAS evaluations, you can manually submit these evaluation results. See LLM Observability external evaluation documentation for more information.
New Features
-
ASM
- Adds a LiteLLM proxy guardrail integration for Datadog AI Guard. The
ddtrace.appsec.ai_guard.integrations.litellm.DatadogAIGuardGuardrailclass can be registered as a custom guardrail in the LiteLLM proxy to evaluate requests and responses against AI Guard security policies. Requires the LiteLLM proxy guardrails API v2 available sincelitellm>=1.46.1.
- Adds a LiteLLM proxy guardrail integration for Datadog AI Guard. The
-
azure_cosmos
- Add tracing support for Azure CosmosDB. This integration traces CRUD operations on CosmosDB databases, containers, and items.
-
CI Visibility
- adds automatic log correlation and submission so that test logs appear alongside their corresponding test run in Datadog. Set
DD_AGENTLESS_LOG_SUBMISSION_ENABLED=truefor agentless setups, orDD_LOGS_INJECTION=truewhen using the Datadog Agent.
- adds automatic log correlation and submission so that test logs appear alongside their corresponding test run in Datadog. Set
-
tracing
- Adds support for exporting traces in OTLP HTTP/JSON format via libdatadog. Set
OTEL_TRACES_EXPORTER=otlpto send spans to an OTLP endpoint instead of the Datadog Agent.
- Adds support for exporting traces in OTLP HTTP/JSON format via libdatadog. Set
-
LLM Observability
- Introduces a
decoratortag to LLM Observability spans that are traced by a function decorator. - Experiments accept a
pydantic_evalsReportEvaluatoras a summary evaluator when itsevaluatereturn annotation is exactlyScalarResult. The scalarvalueis recorded as the summary evaluation. Report evaluators that declare a broader analysis return type (for example the fullReportAnalysisunion) are not accepted as summary evaluators; use a class-based or function summary evaluator instead. Examples and further documentation can found in our documentation here.
Example:
from pydantic_evals.evaluators import ReportEvaluator from pydantic_evals.evaluators import ReportEvaluatorContext from pydantic_evals.reporting.analyses import ScalarResult from ddtrace.llmobs import LLMObs dataset = LLMObs.create_dataset( dataset_name="<DATASET_NAME>", description="<DATASET_DESCRIPTION>", records=[RECORD_1, RECORD_2, RECORD_3, ...] ) class TotalCasesEvaluator(ReportEvaluator): def evaluate(self, ctx: ReportEvaluatorContext) -> ScalarResult: return ScalarResult( title='Total Cases', value=len(ctx.report.cases), unit='cases', ) def my_task(input_data, config): return input_data["output"] equals_expected = EqualsExpected() summary_evaluator = TotalCasesEvaluator() experiment = LLMObs.experiment( name="<EXPERIMENT_NAME>", task=my_task, dataset=dataset, evaluators=[equals_expected], summary_evaluators=[summary_evaluator], description="<EXPERIMENT_DESCRIPTION>." ) result = experiment.run() - Introduces a
Bug Fixes
- profiling
- Fixes lock profiling samples not appearing in the Thread Timeline view for events collected on macOS.
- internal
- Fix a potential internal thread leak in fork-heavy applications.
- This fix resolves an issue where a
ModuleNotFoundErrorcould be raised at startup in Python environments without the_ctypesextension module. - A crash that could occur post-fork in fork-heavy applications has been fixed.
- LLM Observability
- Fixes incorrect span hierarchy in LLMObs traces when using the ddtrace SDK alongside OTel-based instrumentation (e.g. Strands Agents). OTel gen_ai spans (e.g.
invoke_agent) were incorrectly appearing as siblings of their SDK parent span (e.g.call_agent) rather than being nested under it. - Fixes
model_nameandmodel_providerreported on AWS Bedrock LLM spans as themodel_idfull model identifier value (e.g.,"amazon.nova-lite-v1:0") and"amazon_bedrock"respectively. Bedrock spans'model_nameandmodel_providernow correctly match backend pricing data, which enables features including cost tracking. - Fixes an issue where deferred tools (
defer_loading=True) in Anthropic and OpenAI integrations caused LLMObs span payloads to include full tool descriptions and JSON schemas for every tool in a large catalog. Deferred tool definitions now have their description and schema stripped from span metadata, with only the tool name preserved.
- Fixes incorrect span hierarchy in LLMObs traces when using the ddtrace SDK alongside OTel-based instrumentation (e.g. Strands Agents). OTel gen_ai spans (e.g.