chore(deps): update submissions #7100
Open
+12
−12
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
==2024.12.0->==2025.11.0==2.1.4->==4.0.0==0.59.1->==0.62.1<2-><33.10->3.143.10->3.14==2.0.7->==4.0.0==2.2.2->==3.0.0==0.4.2->==2025.10.0==1.9.8->==1.11.5==0.25.0->==0.35.2Release Notes
DataDog/dd-trace-py (ddtrace)
v4.0.0: 4.0.0Compare Source
Estimated end-of-life date, accurate to within three months: 05-2027
See the support level definitions for more information.
This is a major-version release that contains many backwards-incompatible changes to public APIs. To find which of these your code relies on, follow the "deprecation warnings" instructions here.
dd-trace-py now includes an OpenFeature provider implementation, enabling feature flag evaluation through the OpenFeature API.
This integration is under active design and development. Functionality and APIs are experimental and may change without notice. For more information, see the Datadog documentation at https://docs.datadoghq.com/feature_flags/#overview
Breaking Changes
ddtrace.Pinobject with mongoengine. With this change, the ddtrace library no longer directly supports mongoengine. Mongoengine will be supported through thepymongointegration.pytest_benchmarkandpytest_bddintegrations. These plugins are now supported by the regularpytestintegration.DD_DYNAMIC_INSTRUMENTATION_UPLOAD_FLUSH_INTERVALvariable.DD_EXCEPTION_DEBUGGING_ENABLEDvariable.Span.set_tag_strhas been removed, useSpan.set_taginstead.Span.set_struct_taghas been removed.Span.get_struct_taghas been removed.Span._pprinthas been removedSpan.finishedsetter was removed, please useSpan.finish()method instead.Tracer.on_start_spanmethod has been removed.Tracer.deregister_on_start_spanmethod has been removed.ddtrace.trace.Pinhas been removed.Span.finish_with_ancestorswas removed with no replacement.Span.set_tagtyping is nowset_tag(key: str, value: Optional[str] = None) -> NoneSpan.get_tagtyping is nowget_tag(key: str) -> Optional[str]Span.set_tagstyping is nowset_tags(tags: dict[str, str]) -> NoneSpan.get_tagstyping is nowget_tags() -> dict[str, str]Span.set_metrictyping is nowset_metric(key: str, value: int | float) -> NoneSpan.get_metrictyping is nowget_metric(key: str) -> Optional[int | float]Span.set_metricstyping is nowset_metrics(metrics: Dict[str, int | float]) -> NoneSpan.get_metricstyping is nowget_metrics() -> dict[str, int | float]Span.record_exception'stimestampandescapedparameters are removedLLMObs.annotate(),LLMObs.export_span(),LLMObs.submit_evaluation(),LLMObs.inject_distributed_headers(), andLLMObs.activate_distributed_headers()now raise exceptions instead of logging. LLM Observability auto-instrumentation is not affected.LLMObs.submit_evaluation_for()has been removed. Please useLLMObs.submit_evaluation()instead for submitting evaluations. To migrate:LLMObs.submit_evaluation_for(...)users: rename toLLMObs.submit_evaluation(...)LLMObs.submit_evaluation_for(...)users: rename thespan_contextargument tospan, i.e.LLMObs.submit_evaluation(span_context={"span_id": ..., "trace_id": ...}, ...)toLLMObs.submit_evaluation(span={"span_id": ..., "trace_id": ...}, ...)DD_PROFILING_STACK_V2_ENABLEDis now removed.freezegunintegration is now removed.opentracerpackagegoogle_generativeaiintegration has been removed as thegoogle_generativeailibrary has reached end-of-life.As an alternative, you can use the recommended
google_genailibrary and corresponding integration instead.tiktokenlibrary, and insteadwill default to having their token counts estimated if not explicitly provided in the OpenAI response object. To guarantee accurate streamed token metrics, set
stream_options={"include_usage": True}in the OpenAI request.DD_DJANGO_TRACING_MINIMALnow defaults totrue). Django ORM, cache, and template instrumentation are disabled by default to eliminate duplicate span creation since library integrations for database drivers (psycopg, MySQLdb, sqlite3), cache clients (redis, memcached), template renderers (Jinja2), and other supported libraries continue to be traced. This reduces performance overhead by removing redundant Django-layer instrumentation. To restore all Django instrumentation, setDD_DJANGO_TRACING_MINIMAL=false, or enable individual features usingDD_DJANGO_INSTRUMENT_DATABASES=true,DD_DJANGO_INSTRUMENT_CACHES=true, andDD_DJANGO_INSTRUMENT_TEMPLATES=true.DD_DJANGO_INSTRUMENT_DATABASES=true(defaultfalse), database instrumentation now merges Django-specific tags into database driver spans created by supported integrations (psycopg, sqlite3, MySQLdb, etc.) instead of creating duplicate Django database spans. If the database cursor is not already wrapped by a supported integration, Django wraps it and creates a span. This change reduces overhead and duplicate spans while preserving visibility into database operations.ddtrace.settingspackage. Environment variables should be used to adjust settings.HttpPropagator.injectDEFAULT_RUNTIME_METRICS_INTERVAL.Deprecation Notes
ddtrace.contrib.tornadomodule. Configure tracing using environment variables andimport ddtrace.autoinstead.New Features
urllib3andrequests. It does not require enabling APM instrumentation forurllib3anymore.threading.RLock(reentrant lock) profiling. The Lock profiler now tracks boththreading.Lockandthreading.RLockusage, providing comprehensive lock contention visibility for Python applications.versionargument toLLMObs.pull_datasetversionandlatest_versionto provide information on the version of the dataset that is being worked with and the latest global version of the dataset, respectivelyBug Fixes
Lock,RLock,Event).HTTPS_PROXY.assessmentargument insubmit_evaluation().langchainintegration would incorrectly mark Azure OpenAI calls as duplicate llm operations even if theopenaiintegration was enabled.DD_PROFILING_API_TIMEOUTdoesn't have any effect, and is marked to be removed in upcoming 4.0 release. New environment variableDD_PROFILING_API_TIMEOUT_MSis introduced to configure timeout for uploading profiles to the backend. The default value is 10000 ms (10 seconds)_acquiremethod of the Lock profiler (note: this only occurs when assertions are enabled.)versionfield. The version field is now omitted unless explicitly set by the user.assessmentnow refers to whether the evaluation itself passes or fails according to your application, rather than the validity of the evaluation result.The
langchainintegration will trace Azure OpenAI spans as workflow spans if there is an equivalent llm span from theopenaiintegration.IndexError.async for model in client.models.list()) caused aTypeError: 'async for' requires an object with __aiter__ method, got coroutine. See issue #14574.KeyErrorexceptions in test runs when gevent is detected within the environment.ray.init().ray.data._internalto the module denylist.ValueError: Formatting field not found in record: 'dd.service'.ResourceWarningin multiprocess scenarios.Other Changes
wraptlibrary dependency from the Lock Profiler implementation, improving performance and reducing overhead during lock instrumentation.v3.19.0: 3.19.0Compare Source
Estimated end-of-life date, accurate to within three months: 08-2026
See the support level definitions for more information.
Upgrade Notes
Deprecation Notes
Span.finishedsetter is deprecated, useSpan.finish()method instead.Span.finish_with_ancestors()is deprecated with no alternative.ExperimentResultclass'rowsandsummary_evaluationsattributes are deprecated and will be removed in the next major release.ExperimentResult.rows/summary_evaluationsattributes will only store the results of the first run iteration for multi-run experiments. Use theExperimentResult.runsattribute instead to access experiment results and summary evaluations.New Features
runsargument, to assess the true performance of an experiment in the face of the non determinism of LLMs. Use the newExperimentResultclass'runsattribute to access the results and summary evaluations by run iteration.Bug Fixes
Lock,RLock,Event).ResourceWarningin multiprocess scenarios.Other Changes
wraptlibrary dependency from the Lock Profiler implementation, improving performance and reducing overhead during lock instrumentation.v3.18.1: 3.18.1Compare Source
Estimated end-of-life date, accurate to within three months: 08-2026
See the support level definitions for more information.
Bug Fixes
CI Visibility: this fix resolves an issue where repo tags would be fetched while unshallowing to extract commit metadata, causing performance issues for repos with a large number of tags.
LLM Observability: fix support for HTTPS_PROXY.
Error Tracking: Modifies the way exception events are stored such that the exception id is stored instead of the exception object, to prevent TypeErrors with custom exception objects.
v3.18.0: 3.18.0Compare Source
Estimated end-of-life date, accurate to within three months: 08-2026
See the support level definitions for more information.
Upgrade Notes
tiktokenlibrary, and insteadwill default to having their token counts estimated if not explicitly provided in the OpenAI response object. To guarantee accurate streamed token metrics, set
stream_options={"include_usage": True}in the OpenAI request.Deprecation Notes
Span.set_struct_tagis deprecated and will be removed in v4.0.0 with no direct replacement.Span.get_struct_tagis deprecated and will be removed in v4.0.0 with no direct replacement.Span.set_tag_stris deprecated and will be removed in version 4.0.0.As an alternative to
Span.set_tag_str, you can useSpan.set_taginstead.DD_PROFILING_STACK_V2_ENABLED=falsewill no longer have an effect starting in 4.0.New Features
urllib3andrequests. It does not require enabling APM instrumentation forurllib3anymore.threading.RLock(reentrant lock) profiling. The Lock profiler now tracks boththreading.Lockandthreading.RLockusage, providing comprehensive lock contention visibility for Python applications.versionargument toLLMObs.pull_datasetversionandlatest_versionto provide information on the version of the dataset that is being worked with and the latest global version of the dataset, respectivelyBug Fixes
versionfield. The version field is now omitted unless explicitly set by the user.IndexError.assessmentargument insubmit_evaluation().assessmentnow refers to whether the evaluation itself passes or fails according to your application, rather than the validity of the evaluation result.langchainintegration would incorrectly mark Azure OpenAI calls as duplicate llm operations even if theopenaiintegration was enabled.The
langchainintegration will trace Azure OpenAI spans as workflow spans if there is an equivalent llm span from theopenaiintegration.async for model in client.models.list()) caused aTypeError: 'async for' requires an object with __aiter__ method, got coroutine. See issue #14574.KeyErrorexceptions in test runs when gevent is detected within the environment.ray.init().ray.data._internalto the module denylist._acquiremethod of the Lock profiler (note: this only occurs when assertions are enabled.)DD_PROFILING_API_TIMEOUTdoesn't have any effect, and is marked to be removed in upcoming 4.0 release. New environment variableDD_PROFILING_API_TIMEOUT_MSis introduced to configure timeout for uploading profiles to the backend. The default value is 10000 ms (10 seconds)ValueError: Formatting field not found in record: 'dd.service'.v3.17.3: 3.17.3Compare Source
Estimated end-of-life date, accurate to within three months: 08-2026
See the support level definitions for more information.
Bug Fixes
CI Visibility: This fix addresses a performance issue where repository tags were fetched during the unshallow process to extract commit metadata, causing slowdowns in repositories with many tags.
LLM Observability: Resolves an issue in the bedrock integration where invoking cohere rerank models would result in missing spans due to output formatting index errors.
opentelemetry:
ray: This fix resolves an issue where the tracer raised an error when submitting Ray tasks without explicitly calling
ray.init().tracer: This fix resolves an issue where an application instrumented by ddtrace could crash at start. Fix compatibility with
zope.event==6.0v3.17.2: 3.17.2Compare Source
Estimated end-of-life date, accurate to within three months: 08-2026
See the support level definitions for more information.
Bug Fixes
versionfield. The version field is now omitted unless explicitly set by the user.async for model in client.models.list()) caused aTypeError: 'async for' requires an object with __aiter__ method, got coroutine. See issue #14574.IndexError.ValueError: Formatting field not found in record: 'dd.service'.v3.17.1: 3.17.1Compare Source
Estimated end-of-life date, accurate to within three months: 08-2026
See the support level definitions for more information.
Bug Fixes
CI Visibility: This fix resolves performance issue affecting coverage collection for Python 3.12+
LLM Observability
assessmentargument insubmit_evaluation().assessmentnow refers to whether the evaluation itself passes or fails according to your application, rather than the validity of the evaluation result.langchainintegration would incorrectly mark Azure OpenAI calls as duplicate llm operations even if theopenaiintegration was enabled. Thelangchainintegration will trace Azure OpenAI spans as workflow spans if there is an equivalent llm span from theopenaiintegration.v3.17.0: 3.17.0Compare Source
Estimated end-of-life date, accurate to within three months: 08-2026
See the support level definitions for more information.
Upgrade Notes
LLMObs.enableDeprecation Notes
LLMObs.submit_evaluation_for()has been deprecated and will be removed in a future version. It will be replaced withLLMObs.submit_evaluation()which will take the signature of the originalLLMObs.submit_evaluation_for()method in ddtrace version 4.0. Please useLLMObs.submit_evaluation()for submitting evaluations moving forward.To migrate:
LLMObs.submit_evaluation_for(...)users: rename toLLMObs.submit_evaluation(...)LLMObs.submit_evaluation_for(...)users: rename thespan_contextargument tospan, i.e.LLMObs.submit_evaluation(span_context={"span_id": ..., "trace_id": ...}, ...)toLLMObs.submit_evaluation(span={"span_id": ..., "trace_id": ...}, ...)Tracer.on_start_spanandTracer.deregister_on_start_spanare deprecated and will be removed in v4.0.0 with no planned replacement.New Features
asyncio.create_task().asyncioandfuturesintegrations are now enabled by default onLLMObs.enable(), which enables asynchronous context propagation for those libraries.LLMObs.submit_evaluation()andLLMObs.submit_evaluation_for()methods now accept areasoningargument to denote an explanation of the evaluation results.parse()methods used for structured outputs.LLMObs.submit_evaluation_for()method now accepts aassessmentargument to denotewhether or not the evaluation is valid or correct. Accepted values are either
"pass"or"fail".parse()methods for structured outputs onchat.completionsandresponsesendpoints (available in OpenAI SDK >= 1.92.0).track_user_idin the ATO SDK, which is equivalent totrack_userbut does not require the login, only the user id.Bug Fixes
requestswithurllib3\<2.wrapt<2until we can ensure full compatibility with the breaking changes.sumypackage installs files undertests/*insite-packages, and this would cause any modules undertests.*to be considered third-party.AttributeErrorcrash in certain configurations./v1/logspath is correctly added to prevent log payloads from being dropped by the Agent when usingOTEL_EXPORTER_OTLP_ENDPOINTconfiguration. Metrics and traces are unaffected.v3.16.4: 3.16.4Compare Source
Estimated end-of-life date, accurate to within three months: 08-2026
See the support level definitions for more information.
Bug Fixes
versionfield. The version field is now omitted unless explicitly set by the user.ValueError: Formatting field not found in record: 'dd.service'.v3.16.3: 3.16.3Compare Source
Estimated end-of-life date, accurate to within three months: 08-2026
See the support level definitions for more information.
Bug Fixes
langchainintegration would incorrectly mark Azure OpenAI calls as duplicate llm operations even if theopenaiintegration was enabled. Thelangchainintegration will trace Azure OpenAI spans as workflow spans if there is an equivalent llm span from theopenaiintegration.v3.16.2: 3.16.2Compare Source
Bug Fixes
wrapt<2until we can ensure full compatibility with the breaking changesv3.16.1: 3.16.1Compare Source
Estimated end-of-life date, accurate to within three months: 08-2026
See the support level definitions for more information.
Bug Fixes
sumypackage installs files undertests/*insite-packages, and this would cause any modules undertests.*to be considered third-party.AttributeErrorcrash in certain configurations.v3.16.0: 3.16.0Compare Source
Estimated end-of-life date, accurate to within three months: 08-2026
See the support level definitions for more information.
Upgrade Notes
Deprecation Notes
New Features
opentelemetry: Adds default configurations for the OpenTelemetry Metrics API implementation to improve the Datadog user experience. This includes the following configurations:
OTEL_EXPORTER_OTLP_METRICS_ENDPOINTis set to the default Datadog Agent endpoint, or localhost if not foundOTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCEis set todeltaOTEL_METRIC_EXPORT_INTERVALis set to10000OTEL_METRIC_EXPORT_TIMEOUTis set to7500LLM Observability: MCP integration also traces
ClientSessioncontexts,ClientSession.initialize, andClientSession.list_tools.ray: This introduces a Ray core integration that traces Ray jobs, remote tasks, and actor method calls. Supported for Ray >= 2.46.0.
To enable tracing, start the Ray head with
--tracing-startup-hook=ddtrace.contrib.ray:setup_tracingthen submit jobs as usual.Bug Fixes
AttributeErrorthat could occur when tracing Google ADK agent runs, due to the agentmodelattribute not being defined forSequentialAgentclass.ImportErrorfor when usinglangchain_core>=0.3.76.DD_APM_TRACING_ENABLED=0when using LLM Observability.Other Changes
v3.15.1: 3.15.1Compare Source
Bug Fixes
Pin to
wrapt<2until we can ensure full compatibility with the breaking changes.CI Visibility: This fix resolves an issue where tests would be incorrectly detected as third-party code if a third-party package containing a folder with the same name as the tests folder was installed. For instance, the
sumypackage installs files undertests/*insite-packages, and this would cause any modules undertests.*to be considered third-party.langchain: Resolves an issue where langchain patching would throw an
ImportErrorfor when usinglangchain_core>=0.3.76.v3.15.0: 3.15.0Compare Source
Estimated end-of-life date, accurate to within three months: 08-2026
See the support level definitions for more information.
New Features
DD_DJANGO_TRACING_MINIMALenvironment variable for performance-sensitive applications. When enabled, this disables Django ORM, cache, and template instrumentation while keeping middleware instrumentation enabled. This significantly reduces overhead by removing Django-specific spans while preserving visibility into the underlying database drivers, cache clients, and other integrations. For example, with this enabled, Django ORM query spans are disabled but database driver spans (e.g., psycopg, MySQLdb) will still be created. To enable minimal tracing, setDD_DJANGO_TRACING_MINIMAL=true.aws.partitiontag onto AWS traces based on the region for the boto, botocore, and aiobotocore integrations.DD_CIVISIBILITY_ENABLED(with default value True) so it can be disabled to avoid sending traces to the Test Visibility product from the test runners.DD_TRACE_RESOURCE_RENAMING_ENABLED="true"usedforsecurity=False.tagsandchat_template, and a newPromptTypedDict class that would be used in annotation and annotation_context.Bug Fixes
DatadogSamplerfrom getting recreated whenever theSpanAggregatoris reset, and instead updates the rate limiter that the sampler uses.PyErr_Format.-mentries in the denylist.asyncio.Tasks.PyObject_Realloccall, which can lead to accessing freed memory.--skip-atexitis not set when--lazyor--lazy-appsis set on uWSGI<2.0.30. This is to prevent crashes from profiling native extension modules. See unbit/uwsgi#2726 for details.c_chartype raised aTypeError, this now uses the 'c' typecode for better compatibility across versions.DD_GIT_COMMIT_SHAandDD_GIT_REPOSITORY_URLare defined before using the git command.v3.14.4: 3.14.4Compare Source
Estimated end-of-life date, accurate to within three months: 08-2026
See the support level definitions for more information.
Bug Fixes
AAP:
CI Visibility: This fix solves an issue where the ITR skip count metric was aggregating skipped tests even when skipping level was set to suite. It will now count appropriately (skipped suites or skipped tests) depending on ITR skip level.
v3.14.3: 3.14.3Compare Source
Estimated end-of-life date, accurate to within three months: 09-2026
See the support level definitions for more information.
Bug Fixes
python -mand denypy_compile.v3.14.2: 3.14.2Compare Source
Estimated end-of-life date, accurate to within three months: 09-2026
See the support level definitions for more information.
Bug Fixes
instead updates the rate limiter that the sampler uses.
DD_GIT_COMMIT_SHAandDD_GIT_REPOSITORY_URLare defined before using the git command.v3.14.1: 3.14.1Compare Source
Estimated end-of-life date, accurate to within three months: 08-2026
See the support level definitions for more information.
Bug Fixes
v3.14.0: 3.14.0Compare Source
Estimated end-of-life date, accurate to within three months: 08-2026
See the support level definitions for more information.
New Features
ml_appis now optional, defaulting toservice. while it is still recommended to setml_app, enabling LLM Observability will no longer throw if one is not provided or propagated from an upstream service.tool_definitionsparameter to theLLMObs.annotate()method for tool calling scenarios. Users can now pass a list of tool definition dictionaries directly to annotate LLM spans with available tools. Each tool definition must include aname(string) field, with optionaldescription(string) andschema(JSON-serializable dictionary) fields.create_dataset,create_dataset_from_csvandpull_dataset) argumentnameis changed todataset_name.Bug Fixes
ValueError: coroutine already executingon Python 3.13+ withdjango.utils.decorators.async_only_middleware."Error: expected pool connect callback to return an instance of 'asyncpg.connection.Connection', got 'ddtrace.contrib.internal.asyncpg.patch._TracedConnection'"due to using the custom connect option. With this fix, postgres.connect spans will be created wh