Skip to content

Releases: DataDog/dd-trace-py

3.1.1

01 Apr 20:58
395efb6

Choose a tag to compare

Bug Fixes

  • ASM

    • SCA: Resolves an issue where some dependencies where reported with an inaccurate name.
  • CI Visibility

    • Resolves an issue where ddtrace's own sys.monitoring coverage tool in Python 3.12+ would block other sys.monitoring tools such as pytest-cov from being used.
    • 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'.
  • Tracing

    • Changes the name of the span event generated by a record_exception call as it was not following OTEL semantics.

3.3.0

27 Mar 17:08
eb81294

Choose a tag to compare

New Features

  • Includes dynamodb in the default list of cloud services for payload tagging, i.e. DD_TRACE_CLOUD_PAYLOAD_TAGGING_SERVICES. Note that cloud services payload tagging feature is still gated by DD_TRACE_CLOUD_REQUEST_PAYLOAD_TAGGING and DD_TRACE_CLOUD_RESPONSE_PAYLOAD_TAGGING.

  • LLM Observability: This introduces tracing for converse calls to the Bedrock Converse API. converse calls are traced as
    LLM spans with max_tokens, temperature inference parameters and input/output messages.

  • botocore: This introduces capturing prompts, token usage, and inference parameters for converse calls to the Bedrock API.

  • SCA: This add support for extended heartbeat every 24h with dependencies payload.

  • kafka: Adds messaging.destination.name tag to kafka produce and consume spans.

  • LLM Observability: Avoids submitting spans to LLM Observability when a non-default base URL is detected in request for the Anthropic, Bedrock, LangChain, Open AI, and Azure Open AI integrations.

  • ASM: This introduces support for automatic instrumentation of session monitoring and blocking for Django.

  • ASM: This introduces new metrics span tags to keep track of truncations of WAF payloads.

  • runtime_metrics: Adds support for sending runtime metrics as gauge metrics (instead of distributions). To enable this feature set DD_TRACE_EXPERIMENTAL_FEATURES_ENABLED=DD_RUNTIME_METRICS_ENABLED.

  • runtime_metrics: Adds support for tagging runtime metrics with the current runtime ID. To enable tagging, set DD_TRACE_EXPERIMENTAL_RUNTIME_ID_ENABLED=True.

Bug Fixes

  • SCA: This fix resolves an issue where some dependencies where reported with an inaccurate name.

  • profiling: This fix resolves an issue where the Lock profiler would throw an AttributeError: '_ProfiledThreadingLock' object has no attribute '_self_acquired_at'.

  • tags: Updates DD_TAGS parsing to match the Datadog Agent and other SDKs. Key-value pairs can now be separated by both commas and spaces (e.g., DD_TAGS="key1:value1, key2:value2, key3:value3"). This reverts a change introduced in v2.11.0, which only allowed one separator type.

  • dynamic sampling: Ensures that dynamic sampling rates are always consistent with the rates received from the agent via remote configuration. Previously, setting a global sample rate and then sampling rules via remote config would result in both configurations being applied. With this fix only the most recent sampling configuration will be applied.

  • LLM Observability: This fix resolves an issue where enabling LLM Observability caused all botocore submodules to be patched instead
    of only bedrock-runtime.

  • LLM Observability: Resolves issue where Pydantic model objects were encoded as unhelpful default placeholder text.

  • LLM Observability: Improves encoding of non-JSON serializable I/O objects by attempting to convert to string before resorting to default placeholder text.

  • tracing: Resolves an issue where trace information, such as span links, baggage, and trace-level tags (ex: sampling decision maker), could be lost when a new process was created while a trace was active.

  • internal: Fixes an issue where trimming a traceback to attach it to the span could result in the loss of the most recent frames.

  • pylibmc: fixes an issue where using Client(server=[url]) would throw the error __init__() got multiple values for argument 'servers'

  • tracing: Ensures remote sampling rules no longer overwrite existing samplers, preserving service-based sample rates set by the Agent and ensuring tracer rate limits configured by ddtrace products (e.g., ASM) are always respected.

Other Changes

  • tracing: Ensures a single DatadogSampler is initialized per Tracer instance, improving Tracer object initialization speed by approximately 7% and simplifying sampling logic.
  • agent: Migrates agent connection configurations to envier. This provides better documentation and validation for expected types. The following configurations are affected:
    • DD_TRACE_AGENT_URL
    • DD_DOGSTATSD_URL
    • DD_TRACE_AGENT_HOSTNAME
    • DD_AGENT_HOST
    • DD_TRACE_AGENT_PORT
    • DD_DOGSTATSD_PORT
    • DD_AGENT_PORT
    • DD_TRACE_AGENT_TIMEOUT_SECONDS

Of the above impacted configurations, these had a precedence change:

  • DD_TRACE_AGENT_HOSTNAME over DD_AGENT_HOST
  • DD_TRACE_AGENT_PORT over DD_AGENT_PORT
  • DD_DOGSTATSD_HOST over DD_AGENT_HOST
  • DD_DOGSTATSD_PORT over DD_AGENT_PORT

3.3.0rc3

26 Mar 19:06
eb81294

Choose a tag to compare

3.3.0rc3 Pre-release
Pre-release

Bug Fixes

  • ASM

    • SCA: Resolves an issue where some dependencies where reported with an inaccurate name.
  • Profiling

    • Resolves an issue where the Lock profiler would throw an AttributeError: '_ProfiledThreadingLock' object has no attribute '_self_acquired_at'.

3.3.0rc2

21 Mar 18:19
45bf7a7

Choose a tag to compare

3.3.0rc2 Pre-release
Pre-release

No new changes since 3.3.0rc1. One CI fix implemented to unblock release pipeline.

2.21.5rc2

21 Mar 17:51
6769b36

Choose a tag to compare

2.21.5rc2 Pre-release
Pre-release

See 2.21.4 release notes

2.21.5rc1

20 Mar 19:33
c5ae598

Choose a tag to compare

2.21.5rc1 Pre-release
Pre-release

See 2.21.4 release notes

2.21.4

20 Mar 10:25
8d7d3be

Choose a tag to compare

Known Issues

This release is missing the OCI images due to issues with the release pipeline. If you need an OCI image with the features introduced in the 2.14 release line, please use v2.14.5 instead.

Bug Fixes

  • CI Visibility: This fix resolves an issue where ddtrace's own sys.monitoring coverage tool in Python 3.12+ would block other sys.monitoring tools such as pytest-cov from being used.

3.3.0rc1

18 Mar 21:02
4bf3c4d

Choose a tag to compare

3.3.0rc1 Pre-release
Pre-release

New Features

  • ASM

    • Introduces new metrics span tags to keep track of truncations of WAF payloads.
    • Introduces support for automatic instrumentation of session monitoring and blocking for Django.
  • LLM Observability

    • Introduces tracing for converse calls to the Bedrock Converse API. converse calls are traced as LLM spans with max_tokens, temperature inference parameters and input/output messages.
    • Avoids submitting spans to LLM Observability when a non-default base URL is detected in request for the Anthropic, Bedrock, LangChain, Open AI, and Azure Open AI integrations.
  • Telemetry

    • SCA: This add support for extended heartbeat every 24h with dependencies payload.
  • Tracing

    • botocore: Introduces capturing prompts, token usage, and inference parameters for converse calls to the Bedrock API.
    • kafka: Adds messaging.destination.name tag to kafka produce and consume spans.
    • runtime_metrics: Adds support for sending runtime metrics as gauge metrics (instead of distributions). To enable this feature set DD_TRACE_EXPERIMENTAL_FEATURES_ENABLED=DD_RUNTIME_METRICS_ENABLED.
    • runtime_metrics: Adds support for tagging runtime metrics with the current runtime ID. To enable tagging, set DD_TRACE_EXPERIMENTAL_RUNTIME_ID_ENABLED=True.
    • Includes dynamodb in the default list of cloud services for payload tagging, i.e. DD_TRACE_CLOUD_PAYLOAD_TAGGING_SERVICES. Note that cloud services payload tagging feature is still gated by DD_TRACE_CLOUD_REQUEST_PAYLOAD_TAGGING and DD_TRACE_CLOUD_RESPONSE_PAYLOAD_TAGGING.

Bug Fixes

  • LLM Observability

    • Resolves an issue where enabling LLM Observability caused all botocore submodules to be patched instead of only bedrock-runtime.
    • 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.
  • Tracing

    • dynamic sampling: Ensures that dynamic sampling rates are always consistent with the rates received from the agent via remote configuration. Previously, setting a global sample rate and then sampling rules via remote config would result in both configurations being applied. With this fix only the most recent sampling configuration will be applied.
    • internal: Fixes an issue where trimming a traceback to attach it to the span could result in the loss of the most recent frames.
    • pylibmc: Fixes an issue where using Client(server=[url]) would throw the error __init__() got multiple values for argument 'servers'
    • tags: Updates DD_TAGS parsing to match the Datadog Agent and other SDKs. Key-value pairs can now be separated by both commas and spaces (e.g., DD_TAGS="key1:value1, key2:value2, key3:value3"). This reverts a change introduced in v2.11.0, which only allowed one separator type.
    • sampling: Ensures remote sampling rules no longer overwrite existing samplers, preserving service-based sample rates set by the Agent and ensuring tracer rate limits configured by ddtrace products (e.g., ASM) are always respected.
    • Resolves an issue where trace information, such as span links, baggage, and trace-level tags (ex: sampling decision maker), could be lost when a new process was created while a trace was active.

Other Changes

  • Tracing
    • Ensures a single DatadogSampler is initialized per Tracer instance, improving Tracer object initialization speed by approximately 7% and simplifying sampling logic.
    • agent: Migrates agent connection configurations to envier. This provides better documentation and validation for expected types. The following configuration are affected:
      • DD_TRACE_AGENT_URL
      • DD_DOGSTATSD_URL
      • DD_TRACE_AGENT_HOSTNAME
      • DD_AGENT_HOST
      • DD_TRACE_AGENT_PORT
      • DD_DOGSTATSD_PORT
      • DD_AGENT_PORT
      • DD_TRACE_AGENT_TIMEOUT_SECONDS
        Of the above impacted configurations, these had a precedence change:
      • DD_TRACE_AGENT_HOSTNAME over DD_AGENT_HOST
      • DD_TRACE_AGENT_PORT over DD_AGENT_PORT
      • DD_DOGSTATSD_HOST over DD_AGENT_HOST
      • DD_DOGSTATSD_PORT over DD_AGENT_PORT

3.2.1

07 Mar 18:08
e1a7019

Choose a tag to compare

Bug Fixes

  • Library Injection
    • Fix for release script causing lib injection OCI images to not get published.

3.2.1rc2

07 Mar 15:52
e1a7019

Choose a tag to compare

3.2.1rc2 Pre-release
Pre-release

No notes.