Releases: DataDog/dd-trace-py
Releases · DataDog/dd-trace-py
3.4.1
3.3.3
Bug Fixes
- Code Security
- 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.
3.2.3
Bug Fixes
-
Code Security
- 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.
-
Lib-injection
- Avoids zombie process from telemetry sender on startup.
-
LLM Observability
- Fixes an issue where LLMObs could not be enabled in a forked process when setting
agentless_enabled=TrueorDD_LLMOBS_AGENTLESS_ENABLED=true.
- Fixes an issue where LLMObs could not be enabled in a forked process when setting
-
Tracing
- internal: Fixes an issue where trimming a traceback to attach it to the span could result in the loss of the most recent frames.
3.4.0
Upgrade Notes
- Profiling
- Upgrades
echionwhich includes performance improvements.
- Upgrades
Deprecation Notes
- Tracing
patch_allis deprecated. As an alternative topatch_all, you can useimport ddtrace.autoalong withDD_PATCH_MODULESif specific module patching is necessary.
New Features
-
Dynamic Instrumentation
- Adds support for the Decimal type from the Python standard library.
-
LLM Observability
- Introduces a
integrationtag to LLM Observability spans that are generated by an integration. agentless_enabledandDD_LLMOBS_AGENTLESS_ENABLEDnow defaults toNone, and will be determined automatically based on the presence of a compatible Datadog agent.agentless_enabledandDD_LLMOBS_AGENTLESS_ENABLEDcan still be set explicitly toTrueorFalse</span>, but is now optional for agentless users.
- Introduces a
-
Profiling
- Stack v2 supports CPython 3.13.
- Adds support for native exporter on Windows.
- Enables profiling native modules for macOS x86_64.
-
Tracing
- Adds configuration for encoding span events as a top-level field in v0.4 payloads and introduces environment variable
DD_TRACE_NATIVE_SPAN_EVENTS(disabled by default). This requires agent version 7.63.0 or later. - Extracts the referrer hostname from HTTP requests and stored it as
http.referrer_hostnametag.
- Adds configuration for encoding span events as a top-level field in v0.4 payloads and introduces environment variable
Bug Fixes
-
Fixes an issue with gevent support and the typing module on CPython >= 3.12.
-
ASM
- Fixes a
NotImplementedErrorthat occurred when trying to deepcopy wrapped builtin functions (likeopen) while ASM or IAST were enabled. The error was caused by the wrapper not implementing the__deepcopy__method. - SCA: Resolves an issue where some dependencies where reported with an inaccurate name.
- Fixes a
-
CI Visibility
- Resolves an issue where JUnit XML output would not count tests retried by Early Flake Detection, Auto Test Retries, and Attempt-to-Fix.
-
Lib-Injection
- Avoids zombie process from telemetry sender on startup.
-
LLM Observability
- Resolves an issue where large spans traced within a short time interval were dropped despite being under the 1 MB limit.
- Resolves an issue with anthropic LLM spans where multiple system prompts caused missing input messages.
- Resolves an issue where traces containing intermixed APM and LLM Observability spans caused incorrect parent IDs for LLM Observability spans.
- Fixes an issue where LLMObs could not be enabled in a forked process when setting
agentless_enabled=TrueorDD_LLMOBS_AGENTLESS_ENABLED=true. openai: Avoids creating spans for streamed Open AI chat and completion requests that usewith_raw_responsesince the stream cannot be traced in these cases, leading to unfinished spans.
-
Profiling
- Resolves an issue where the Lock profiler would throw an
AttributeError: '_ProfiledThreadingLock' object has no attribute '_self_acquired_at'.
- Resolves an issue where the Lock profiler would throw an
-
Single-Step Instrumentation
- Resolves an issue where using Poetry to run an application under a version of Python different from the version used to install Poetry caused automatic library injection to fail.
-
Tracing
graphql: Fixes an issue in GraphQL patching that threw an error when locations (anOptionalfield) isNone. This checks for locations before setting attributes.
Other Changes
- Single-Step Instrumentation
- Ensures that the SSI is not used for uWSGI applications. For enablement instructions, refer to the following our advanced_usage docs.
3.4.0rc2
No changelogs since 3.4.0rc1
3.3.2
Bug Fixes
-
Lib-Injection
- Avoids zombie process from telemetry sender on startup.
-
LLM Observability
- Resolves an issue where large spans traced within a short time interval were dropped despite being under the 1 MB limit.
- Resolves an issue with anthropic LLM spans where multiple system prompts caused missing input messages.
- Fixes an issue where LLMObs could not be enabled in a forked process when setting
agentless_enabled=TrueorDD_LLMOBS_AGENTLESS_ENABLED=true.
Other Changes
- library: Ensures that the SSI is not used for uWSGI applications. For enablement instructions, refer to the following our advanced_usage docs .
2.21.5
Bug Fixes
-
ASM
- Fixes a
NotImplementedErrorthat occurred when trying to deepcopy wrapped builtin functions (likeopen) while ASM or IAST were enabled. The error was caused by the wrapper not implementing the__deepcopy__method.
- Fixes a
-
LLM Observability
- Fixes an issue where LLMObs could not be enabled in a forked process when setting
agentless_enabled=TrueorDD_LLMOBS_AGENTLESS_ENABLED=true.
- Fixes an issue where LLMObs could not be enabled in a forked process when setting
-
Profiling
- Resolves an issue where the Lock profiler would throw an
AttributeError: '_ProfiledThreadingLock' object has no attribute '_self_acquired_at'.
- Resolves an issue where the Lock profiler would throw an
-
Tracing
pylibmc: Fixes an issue where usingClient(server=[url])would throw the error__init__() got multiple values for argument 'servers'
Other Changes
- library: Ensures that the SSI is not used for uWSGI applications. For enablement instructions, refer to the following our advanced_usage docs .
3.4.0rc1
Upgrade Notes
- Profiling
- Upgrades
echionwhich includes performance improvements.
- Upgrades
Deprecation Notes
- Tracing
patch_allis deprecated. As an alternative topatch_all, you can useimport ddtrace.autoalong withDD_PATCH_MODULESif specific module patching is necessary.
New Features
-
Dynamic Instrumentation
- Adds support for the Decimal type from the Python standard library.
-
LLM Observability
- Introduces a
integrationtag to LLM Observability spans that are generated by an integration. agentless_enabledandDD_LLMOBS_AGENTLESS_ENABLEDnow defaults toNone, and will be determined automatically based on the presence of a compatible Datadog agent.agentless_enabledandDD_LLMOBS_AGENTLESS_ENABLEDcan still be set explicitly toTrueorFalse</span>, but is now optional for agentless users.
- Introduces a
-
Profiling
- Stack v2 supports CPython 3.13.
- Adds support for native exporter on Windows.
- Enables profiling native modules for macOS x86_64.
-
Tracing
- Adds configuration for encoding span events as a top-level field in v0.4 payloads and introduces environment variable
DD_TRACE_NATIVE_SPAN_EVENTS(disabled by default). This requires agent version 7.63.0 or later. - Extracts the referrer hostname from HTTP requests and stored it as
http.referrer_hostnametag.
- Adds configuration for encoding span events as a top-level field in v0.4 payloads and introduces environment variable
Bug Fixes
-
Fixes an issue with gevent support and the typing module on CPython >= 3.12.
-
ASM
- Fixes a
NotImplementedErrorthat occurred when trying to deepcopy wrapped builtin functions (likeopen) while ASM or IAST were enabled. The error was caused by the wrapper not implementing the__deepcopy__method. - SCA: Resolves an issue where some dependencies where reported with an inaccurate name.
- Fixes a
-
CI Visibility
- Resolves an issue where JUnit XML output would not count tests retried by Early Flake Detection, Auto Test Retries, and Attempt-to-Fix.
-
Lib-Injection
- Avoids zombie process from telemetry sender on startup.
-
LLM Observability
- Resolves an issue where large spans traced within a short time interval were dropped despite being under the 1 MB limit.
- Resolves an issue with anthropic LLM spans where multiple system prompts caused missing input messages.
- Resolves an issue where traces containing intermixed APM and LLM Observability spans caused incorrect parent IDs for LLM Observability spans.
- Fixes an issue where LLMObs could not be enabled in a forked process when setting
agentless_enabled=TrueorDD_LLMOBS_AGENTLESS_ENABLED=true. openai: Avoids creating spans for streamed Open AI chat and completion requests that usewith_raw_responsesince the stream cannot be traced in these cases, leading to unfinished spans.
-
Profiling
- Resolves an issue where the Lock profiler would throw an
AttributeError: '_ProfiledThreadingLock' object has no attribute '_self_acquired_at'.
- Resolves an issue where the Lock profiler would throw an
-
Single-Step Instrumentation
- Resolves an issue where using Poetry to run an application under a version of Python different from the version used to install Poetry caused automatic library injection to fail.
-
Tracing
graphql: Fixes an issue in GraphQL patching that threw an error when locations (anOptionalfield) isNone. This checks for locations before setting attributes.
Other Changes
- Single-Step Instrumentation
- Ensures that the SSI is not used for uWSGI applications. For enablement instructions, refer to the following our advanced_usage docs.
3.3.1
Bug Fixes
-
ASM
- Fixes a
NotImplementedErrorthat occurred when trying to deepcopy wrapped builtin functions (likeopen) while ASM or IAST were enabled. The error was caused by the wrapper not implementing the__deepcopy__method.
- Fixes a
-
CI Visibility
- Resolves an issue where JUnit XML output would not count tests retried by Early Flake Detection, Auto Test Retries, and Attempt-to-Fix.
-
Lib-Injection
- Avoids zombie process from telemetry sender on startup.
-
LLM Observability
- Resolves an issue where large spans traced within a short time interval were dropped despite being under the 1 MB limit.
3.2.2
Bug Fixes
-
ASM
- Fixes a
NotImplementedErrorthat occurred when trying to deepcopy wrapped builtin functions (likeopen) while ASM or IAST were enabled. The error was caused by the wrapper not implementing the__deepcopy__method. - SCA: Resolves an issue where some dependencies where reported with an inaccurate name.
- Fixes a
-
CI Visibility
- Resolves an issue where JUnit XML output would not count tests retried by Early Flake Detection, Auto Test Retries, and Attempt-to-Fix.
-
LLM Observability
- Resolves issue where Pydantic model objects were encoded as unhelpful default placeholder text.
- Improves encoding of non-JSON serializable I/O objects by attempting to convert to string before resorting to default placeholder text.
-
Profiling
- Resolves an issue where the Lock profiler would throw an
AttributeError: '_ProfiledThreadingLock' object has no attribute '_self_acquired_at'.
- Resolves an issue where the Lock profiler would throw an
-
Tracing
- pylibmc: Fixes an issue where using
Client(server=[url])would throw the error__init__() got multiple values for argument 'servers'
- pylibmc: Fixes an issue where using