Estimated end-of-life date, accurate to within three months: 10-2027
See the support level definitions for more information.
Upgrade Notes
- ray: Adds
DD_TRACE_RAY_IGNORED_ACTORSconfiguration to exclude specific Ray actor methods from instrumentation. SetDD_TRACE_RAY_IGNORED_ACTORS='{"ActorA": ["method1"], "ActorB": "*"}'to leave matching methods or actors uninstrumented while continuing to trace other Ray actor methods. Matching is based on actor class name only.
New Features
- AI Guard: When
DD_AI_GUARD_ENABLED=trueis set and anai_guardspan is created during a request, the tracer now populateshttp.client_ipandnetwork.client.ipon the service-entry (local root) span, mirroring the behavior used for Application Security. If AI Guard does not run during the request, no client IP tags are added.DD_TRACE_CLIENT_IP_ENABLEDis ignored once AI Guard reports, andDD_TRACE_CLIENT_IP_HEADERcontinues to override header resolution.
Bug Fixes
- CI Visibility: Fixes code coverage instrumentation on Python 3.13, 3.14, and 3.15. Resolves lost per-test line data caused by:
sys.monitoringcallbacks running in a snapshot context whereContextVarchanges are not visible (Python 3.14+); empty modules emitting noLINEevents (Python 3.13+); andProcessPoolExecutorchild coverage not being propagated to the parent context. Also fixes a stale-data bug where child process executable lines could inflate coverage denominators afterstop_coverage()was called beforejoin().
- django: API endpoint discovery now supports Django sub-applications mounted with
django.urls.include(...). Endpoints are reported with their full URL path including the parent prefix — for example, a view served at/api/users/is now reported as/api/users/instead of losing the/api/prefix.
- django: API endpoint discovery now reports the correct HTTP methods for views decorated with
@require_http_methodscombined with another decorator such as@csrf_exempt; the declared methods are reported instead of a generic wildcard entry.
- LLM Observability: This fix resolves an issue where running an experiment with a dataset whose records had
nullmetadata caused the summary evaluator to crash with aTypeErrorwhile preparing evaluator inputs.
- LLM Observability: Changes the default
model_nameandmodel_providerof LLM and embedding spans fromcustomtounknownif not provided or empty. This applies to both auto-instrumented spans and manual instrumentation viaLLMObs.llm()/LLMObs.embedding()and the@llm/@embeddingdecorators.
- profiling: A crash that could happen in child processes after fork has been fixed.
- profiling: A rare crash caused by the memory allocation profiler has been fixed.
- RemoteConfig: Fixed an issue where deleted remote configurations were not applied, causing stale settings to persist.
- wsgi: This fix resolves an issue where the
http.urltag on inbound request spans contained the WSGI mount prefix twice (for example/admin/admin/usersinstead of/admin/users) when the application was served behindwerkzeug.middleware.dispatcher.DispatcherMiddlewareor any other in-process mount that preserves the original request URI inRAW_URI/REQUEST_URIwhile also settingSCRIPT_NAME.
- profiling: A rare crash happening on systems with small stack sizes when profiling asyncio code has been fixed.