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 thecelery
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 setappsec.events.<custom_event>.track
which was missing. - django: Fixes an issue where
http.route
was only set ifuse_handler_resource_format
anduse_legacy_resource_format
were set toFalse
. - 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 thanDD_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.