Deprecation Notes
- Tracing
opentracing
: Support for OpenTracing has been deprecated and will be removed in v4.0.0. Please use the OpenTelemetry API instead.DD_RUNTIME_METRICS_INTERVAL
is deprecated and will be removed in the 4.0.0 release.
New Features
-
LLM Observability
- Introduces tracing for
converse_stream
calls to the Bedrock Converse API.converse_stream
calls are traced as LLM spans withmax_tokens
,temperature
inference parameters and input/output messages. - Introduces tracing support for LangGraph graph and node invocation.
- Introduces tracing support for CrewAI crew, task, agent, and tool executions.
- Introduces tracing support for OpenAI Agents SDK. Agent, guardrail, tool, handoff, response, and custom operations are traced. Input/output data for the trace is only set if the default Responses API is used.
botocore
: Introduces capturing prompts, token usage, and inference parameters forconverse_stream
calls to the Bedrock API.crewai
: Introduces tracing support for the CrewAI SDK, specifically tracing crew, task, agent, and tool executions. See the docs for more information.litellm
: Introduces tracing support for the LiteLLM Python SDK's synchronous and asynchronouscompletion
andtext_completion
methods. See the docs for more information.openai_agents
: Introduces tracing support for OpenAI Agents SDK. Agent, guardrail, tool, handoff, response, and custom operations are traced. See the docs for more information.
- Introduces tracing for
-
Tracing
-
Support for Database Monitoring (DBM) propagation in pymongo. Two propagation modes are supported:
- Full mode: Injects both service information and trace context, allowing complete correlation between traces and database monitoring samples.
- Service mode: Injects only service information, enabling service-level correlation without trace-specific details.
This feature can be controlled using the
DD_DBM_PROPAGATION_MODE
environment variable with valuesfull
,service
, ordisabled
. Example of enabling full or service propagation mode:DD_DBM_PROPAGATION_MODE=full|service
Note that this feature requires PyMongo 3.9 or higher. -
A subset of the tracer configuration is now stored on disk throughout the tracer's lifetime. This enables the monitoring of which processes are instrumented.
-
azure_functions
: Introduces tracing support for timer triggers. -
langgraph
: Introduces tracing support for LangGraph, specifically tracing graph and node executions. See the docs for more information.
-
Bug Fixes
-
Code Security
- IAST: Fixes a bug where invalid f-strings didn’t raise the expected "Unknown format code" error when IAST was enabled.
- Fixes an issue with PosixPath handling in path operations that could cause errors during taint tracking. This fix improves stability and slightly reduces import times.
-
CI Visibility
- Resolves an issue where the
CODEOWNERS
file of the project being tested was looked up in the current working directory rather than the repository root. - Resolves an issue where an
I/O operation on closed file
error was raised while printingddtrace
logs during a pytest session, due to a conflict with pytest's log capture.
- Resolves an issue where the
-
Profiling
- Fixes an infinite recursion from calling logging module when lock profiler fails to delete
_self_acquired_at
attribute.
- Fixes an infinite recursion from calling logging module when lock profiler fails to delete
-
Tracing
- Resolves an issue where
Django
,Flask
,Cherrypy
,wsgi
,asgi
,pyramid
,molten
,falcon
,tornado
,aiohttp
,bottle
,rq
, andsanic
integrations were unnecessarily running code to activate distributed tracing headers multiple times per request. This is fixed by only activating distributed tracing headers once per request. azure_functions
: Resolves an issue where the function name set by the function_name decorator was ignored.azure_functions
: Resolves an issue where a function would not start if thetrigger_arg_name
parameter was set to anything other thanreq
.azure_functions
: Resolves an issue where timer triggers had a span kind ofserver
instead ofinternal
graphql
: ResolvesAttributeError
raised when used with older versions ofgraphql-core
that do not haveformatted
property forSourceLocation
.opentelemetry
: Updates trace flags inopentelemetry.trace.Span.get_span_context()
to match OpenTelemetry specification.subprocess
: Removes unnecessary debug log variables.
- Resolves an issue where