Skip to content

Releases: DataDog/dd-trace-py

1.12.0rc1

13 Apr 17:03
28dd2b1

Choose a tag to compare

1.12.0rc1 Pre-release
Pre-release

New Features

  • tracing: Adds support for 128 bit trace ids for b3 and w3c distributing tracing headers.
  • pytest: Adds the DD_CIVISIBILITY_AGENTLESS_ENABLED environment variable to configure the CIVisibility service to use an agent-less test reporting CIVisibilityWriter. Note that the CIVisibility service will use regular agent reporting by default.
  • sci: Extracts and sends git metadata from environment variables DD_GIT_REPOSITORY_URL, DD_GIT_COMMIT_SHA, or from the python package specified in the DD_MAIN_PACKAGE. This feature can be disabled by setting DD_TRACE_GIT_METADATA_ENABLED=False.
  • otel: Adds support for the OpenTelemetry Tracing API. Please refer to the docs <ddtrace.opentelemetry> for more details.

Bug Fixes

  • tracing: Ensure datadog headers propagate 128 bit trace ids when DD_TRACE_128_BIT_TRACEID_GENERATION_ENABLED=False
  • aws_lambda: Fix AttributeError raised when ddtrace.patch_all(), or ddtrace.patch(aws_lambda=True), is set on user handler.
  • aws_lambda: Fix AttributeError raised when extracting context from arguments.
  • aws_lambda: Fix AttributeError raised when callable handlers are traced.
  • dynamic instrumentation: Fixed an issue with expressions in metric probes that prevented them from being evaluated.
  • Prevent exceptions when autoreloading modules that directly or indirectly import ddtrace with the iPython autoreload extension.
  • profiling: Corrects accounting of wall and CPU time for gevent tasks within the main Python thread.
  • profiling: Fixed an issue with the memory collector where a segmentation fault could occur during shutdown.
  • lib-injection: The ddtrace package is now provided via the Docker image rather than relying on a run-time pip install. This solves issues like containers blocking network requests, installation overhead during application startup, permissions issues with the install.

1.11.2

10 Apr 19:51
5281ec0

Choose a tag to compare

Bug Fixes

  • tracing: Ensure datadog headers propagate 128 bit trace ids when DD_TRACE_128_BIT_TRACEID_GENERATION_ENABLED=False

1.11.1

06 Apr 14:59
82e7c31

Choose a tag to compare

Bug Fixes

  • lib-injection: The ddtrace package is now provided via the Docker image rather than relying on a run-time pip install. This solves issues like containers blocking network requests, installation overhead during application startup, permissions issues with the install.

1.8.3

06 Apr 18:01
d99dd39

Choose a tag to compare

Bug Fixes

  • dbm: Support sql queries with the type byte.
  • tracing: Pads trace_id and span_ids in b3 headers to have a minimum length of 16.
  • propagation: This fix resolves an issue where previously W3C tracestate propagation could not handle whitespace. With this fix whitespace is now removed for incoming and outgoing requests.

1.8.2

30 Mar 20:33
9a60d28

Choose a tag to compare

Bug Fixes

  • elasticsearch: Omit large elasticsearch.body tag values that are
    greater than 25000 characters to prevent traces from being too large to send.

1.11.0

03 Apr 18:39
506081f

Choose a tag to compare

New Features

  • tracing: Adds support for 128 bit trace ids. To generate and propagate 128 bit trace ids using Datadog distributed tracing headers set the following configuration: DD_TRACE_128_BIT_TRACEID_GENERATION_ENABLED=True. Support for B3 and W3C distributed tracing headers will be added in a future change.
  • aiohttp: Add missing component meta tag to aiohttp server spans.
  • redis: Adds tracing support for redis.cluster.RedisCluster.
  • celery: Adds automatic tracing of the celery.beat scheduling service to the celery integration.
  • kafka: Adds instrumentation support for confluent-kafka>=1.7. See the confluent-kafka documentation for more information.
  • dynamic instrumentation: introduced support for dynamic span probes.
  • Adds source code integration with setuptools build metadata. This enables traces and profiles to be automatically tagged with git metadata to track deployments in Datadog.

Deprecation Notes

  • ASM: Several deprecated ASM constants that were added to the public API will be removed. This should not affect existing code as they were meant for private use only.

Bug Fixes

  • tracing: This fix resolves an issue where making a sampling decision before the env span tag had been set caused sample rate data from the Datadog Agent to be ignored.
  • ASM: make track_custom_event() also set appsec.events.<custom_event>.track which was missing.
  • django: Fixes an issue where http.route was only set if use_handler_resource_format and use_legacy_resource_format were set to False.
  • tracing: This fix resolves an issue where a very long string as a span attribute would cause that span not to be delivered. It replaces string span attributes larger than DD_TRACE_WRITER_BUFFER_SIZE_BYTES (which as of this version defaults to 8388608) with a small string containing debug information and not containing any of the original attribute string.
  • ASM: Resolves installation issues with compiling native code on Windows and unknown platforms.
  • aws_lambda: Fixes a RecursionError which is raised when aws lambda signal handlers are wrapped infinitely. This caused lambdas to crash on startup.
  • botocore: Fix TypeError raised by injecting trace context into Kinesis messages.
  • dynamic instrumentation: Fix a bug where the dynamic instrumentation would stop injecting function probes after the first failed one.
  • dynamic instrumentation: This change fixes a bug whereby probes that have been disabled/removed from the front-end would not be removed by the client library.
  • futures: Resolves an issue that prevents tasks from being submitted to a thread pool executor when gevent is used (e.g. as a worker class for gunicorn or celery).
  • propagation: This fix resolves an issue where previously W3C tracestate propagation could not handle whitespace. With this fix whitespace is now removed for incoming and outgoing requests.
  • httplib: Fixes an issue with patching of http client upon import
  • Ensure DD_REMOTE_CONFIGURATION_ENABLED environment variable disables remote config if set to False

Other Changes

  • aws_lambda: Updates how DD_APM_FLUSH_DEADLINE_MILLISECONDS is used. Previously, we would set the deadline as the environment variable value, if set. Now, when the remaining time in an AWS Lambda invocation is less than DD_APM_FLUSH_DEADLINE_MILLISECONDS, the tracer will attempt to submit the current active spans and all finished spans. the value in the environment variable is used to subtract from the deadline. The default is still 100ms.

1.11.0rc1

29 Mar 21:06
506081f

Choose a tag to compare

1.11.0rc1 Pre-release
Pre-release

Deprecation Notes

  • ASM: Several deprecated ASM constants that were added to the public API will be removed. This should not affect existing code as they were meant for private use only.

New Features

  • tracing: Adds support for 128 bit trace ids. To generate and propagate 128 bit trace ids using Datadog distributed tracing headers set the following configuration: DD_TRACE_128_BIT_TRACEID_GENERATION_ENABLED=True. Support for B3 and W3C distributed tracing headers will be added in a future change.
  • aiohttp: Add missing component meta tag to aiohttp server spans.
  • redis: Adds tracing support for redis.cluster.RedisCluster.
  • celery: Adds automatic tracing of the celery.beat scheduling service to the celery integration.
  • kafka: Adds instrumentation support for confluent-kafka>=1.7. See the confluent-kafka<https://ddtrace.readthedocs.io/en/stable/integrations.html#kafka> documentation for more information.
  • dynamic instrumentation: introduced support for dynamic span probes.
  • Adds source code integration with setuptools build metadata. This enables traces and profiles to be automatically tagged with git metadata to track deployments in Datadog.

Bug Fixes

  • tracing: This fix resolves an issue where making a sampling decision before the env span tag had been set caused sample rate data from the Datadog Agent to be ignored.
  • ASM: make track_custom_event() also set appsec.events.<custom_event>.track which was missing.
  • django: Fixes an issue where http.route was only set if use_handler_resource_format and use_legacy_resource_format were set to False.
  • tracing: This fix resolves an issue where a very long string as a span attribute would cause that span not to be delivered. It replaces string span attributes larger than DD_TRACE_WRITER_BUFFER_SIZE_BYTES (which as of this version defaults to 8388608) with a small string containing debug information and not containing any of the original attribute string.
  • ASM: Resolves installation issues with compiling native code on Windows and unknown platforms.
  • aws_lambda: Fixes a RecursionError which is raised when aws lambda signal handlers are wrapped infinitely. This caused lambdas to crash on startup.
  • botocore: Fix TypeError raised by injecting trace context into Kinesis messages.
  • dynamic instrumentation: Fix a bug where the dynamic instrumentation would stop injecting function probes after the first failed one.
  • dynamic instrumentation: This change fixes a bug whereby probes that have been disabled/removed from the front-end would not be removed by the client library.
  • futures: Resolves an issue that prevents tasks from being submitted to a thread pool executor when gevent is used (e.g. as a worker class for gunicorn or celery).
  • propagation: This fix resolves an issue where previously W3C tracestate propagation could not handle whitespace. With this fix whitespace is now removed for incoming and outgoing requests.
  • httplib: Fixes an issue with patching of http client upon import
  • Ensure DD_REMOTE_CONFIGURATION_ENABLED environment variable disables remote config if set to False

Other Changes

  • aws_lambda: Updates how DD_APM_FLUSH_DEADLINE_MILLISECONDS is used. Previously, we would set the deadline as the environment variable value, if set. Now, when the remaining time in an AWS Lambda invocation is less than DD_APM_FLUSH_DEADLINE_MILLISECONDS, the tracer will attempt to submit the current active spans and all finished spans. the value in the environment variable is used to subtract from the deadline. The default is still 100ms.

1.10.2

27 Mar 15:48
5f5e202

Choose a tag to compare

Bug Fixes

  • propagation: This fix resolves an issue where previously W3C tracestate propagation could not handle whitespace. With this fix whitespace is now removed for incoming and outgoing requests.

1.9.5

24 Mar 12:35
35e8f2a

Choose a tag to compare

Bug Fixes

  • ASM: make track_custom_event() also set appsec.events.<custom_event>.track which was missing.
  • aws_lambda: Fixes a RecursionError which is raised when aws lambda signal handlers are wrapped infinitely. This caused lambdas to crash on startup.
  • botocore: Fix TypeError raised by injecting trace context into Kinesis messages.
  • propagation: This fix resolves an issue where previously W3C tracestate propagation could not handle whitespace. With this fix whitespace is now removed for incoming and outgoing requests.
  • remote config: Ensure DD_REMOTE_CONFIGURATION_ENABLED environment variable disables remote config if set to False

1.10.1

23 Mar 15:22
6cc62ad

Choose a tag to compare

Bug Fixes

  • ASM: make track_custom_event() also set the tag appsec.events.<custom_event>.track which was missing.
  • aws_lambda: Fixes a RecursionError which is raised when aws lambda signal handlers are wrapped infinitely. This caused lambdas to crash on startup.
  • botocore: Fix TypeError raised by injecting trace context into Kinesis messages.