Releases: DataDog/dd-trace-py
1.18.5
Bug Fixes
- data_streams: This fix resolves an issue where data stream context propagation would not propagate via SNS if raw message delivery was enabled.
- appsec: This fix resolves an issue in which the library attempted to finalize twice a context object used by the Application Security Management product.
1.17.6
Bug Fixes
- data_streams: This fix resolves an issue where data stream context propagation would not propagate via SNS if raw message delivery was enabled.
- profiling: fixed a bug that prevented profiles from being correctly correlated to traces in gevent-based applications, thus causing code hotspot and end point data to be missing from the UI.
1.18.4
Known Issues
- When running setup.py extensions with the CMake parameter "-j", it could potentially raise an out-of-memory error. If someone wants to expedite the ddtrace installation, they should manually set the "CMAKE_BUILD_PARALLEL_LEVEL" environment variable.
Bug Fixes
-
ASM: avoid potentially unneeded import of the IAST native module if setup doesn't build extensions correctly.
-
profiling: fixed a bug that prevented profiles from being correctly correlated to traces in gevent-based applications, thus causing code hotspot and end point data to be missing from the UI.
-
lib-inject: This fix resolves an issue where
libdl.so.2: cannot open shared object file: No such file or directoryerrors occurred when the injection image started.
1.17.5
Known Issues
- There are known issues configuring python's builtin multiprocessing library when ddtrace is installed. To use the multiprocessing library with ddtrace ensure
DD_UNLOAD_MODULES_FROM_SITECUSTOMIZEis set toTrue.
Bug Fixes
- dynamic instrumentation: fixed a bug that might have caused probe status to fail to update correctly.
- django: This fix resolves an issue where 'span.resource' would not include the endpoint when a Handler was interrupted, such as in the case of gunicorn worker timeouts.
- CI Visibility: fixes an issue where the Intelligent Test Runner would not work when in EVP proxy mode due to missing
X-Datadog-NeedsAppKeyheader. - mariadb: This fix resolves an issue where MariaDB connection information objects not including the user or port caused exceptions to be raised.
1.18.3
Known Issues
- There are known issues configuring python's builtin multiprocessing library when ddtrace is installed. To use the multiprocessing library with ddtrace ensure
DD_UNLOAD_MODULES_FROM_SITECUSTOMIZEis set toTrue.
Bug Fixes
- dynamic instrumentation: function duration measurements are now reported in milliseconds to match the expectation from the UI.
- dynamic instrumentation: fixed an issue that prevented line probes from being injected in some finally blocks.
- dynamic instrumentation: Fixed the programmatic API to ensure that the dynamic instrumentation service is fully enabled when
Dynamic Instrumentation.enable()is called. - dynamic instrumentation: fixed a bug that might have caused probe status to fail to update correctly.
- mariadb: This fix resolves an issue where MariaDB connection information objects not including the user or port caused exceptions to be raised.
- pymongo: This upgrades the PyMongo integration to work with PyMongo versions 4.5.0 and above by choosing the root function of the integration on the basis of the PyMongo version.
Other Changes
- docs: Fixes formatting in ddtrace docs.
1.16.2
Known Issues
- sqlalchemy: sqlalchemy rollbacks can intermittently cause deadlocks in some cases. If experiencing this issue, set
DD_TRACE_SPAN_AGGREGATOR_RLOCK=True. After testing and feedback we intend to make True the default value.
Bug Fixes
- dynamic instrumentation: fixed a bug that prevented span decoration probes from being received and instrumented.
- dynamic instrumentation: fixed a bug that might have caused probe status to fail to update correctly.
- django: This fix resolves an issue where 'span.resource' would not include the endpoint when a Handler was interrupted, such as in the case of gunicorn worker timeouts.
- profiling: prevent deadlocks while recording events of different type.
- kafka: Resolves
UnicodeDecodeErrorraised when kafka messages key contain characters that are not supported by UTF-8 encoding.
1.18.2
Bug Fixes
- CI Visibility: revert to using DD_CIVISIBILITY_ITR_ENABLED (instead of _DISABLED) to conform with other tracers.
1.18.1
Bug Fixes
- ASM: avoid potentially unneeded import of the IAST native module.
- django: This fix resolves an issue where 'span.resource' would not include the endpoint when a Handler was interrupted, such as in the case of gunicorn worker timeouts.
- CI Visibility: fixes an issue where the Intelligent Test Runner would not work when in EVP proxy mode due to missing
X-Datadog-NeedsAppKeyheader.
1.17.4
Bug Fixes
- CI Visibility: fixes an issue where the CI Visibility client would raise an exception if it was started in agentless mode without the DD_API_KEY set
- lib-injection: Resolves permissions errors raised when ddtrace packages are copied from the InitContainer to the shared volume.
1.18.0
Prelude
Data Streams Monitoring (DSM) has added support for AWS Kinesis
Breaking change for CI Visibility: test.suite and test.full_name are changed, so any visualization or monitor that uses these fields is potentially affected.
New Features
-
CI Visibility: added tracing support for pytest-benchmark
-
ASM: The vulnerability report now includes a feature to scrub potentially sensitive information. This scrubbing process looks for common patterns, and it can be further expanded using environment variables such as
DD_IAST_REDACTION_NAME_PATTERNandDD_IAST_REDACTION_VALUE_PATTERN. See the docs for more information. -
DSM: Adds DSM support for AWS Kinesis. For information about DSM, see the official documentation. This change requires users to use botocore version 1.26.30 or later and update calls to Kinesis' PutRecord, PutRecords, and GetRecords calls with the StreamARN argument.
-
pytest: This change introduces an option to the pytest plugin to disable ddtrace:
--no-ddtrace -
CI visibility: Adds support for tracking repository URLs via the BITBUCKET_GIT_HTTP_ORIGIN environment variable
-
CI visibility: Adds CodeFresh integration
-
CI Visibility: Beta release of
pytestsupport for the Intelligent Test Runner . -
openai:
tiktokenhas been introduced as an optional package dependency to calculate the number of
tokens used in a prompt for a streamed completion or streamed chat completion. To enable this feature, installddtrace[openai]ortiktoken. Iftiktokenis not installed, the prompt token count will be continue to be estimated instead. -
Allows the use of a new backend for storing and exporting profiling data. This feature can be enabled for now by setting the DD_PROFILING_EXPORT_LIBDD_ENABLED environment variable to true. This should improve performance while decreasing memory overhead.
Known Issues
- sqlalchemy: sqlalchemy rollbacks can intermittently cause deadlocks in some cases. If experiencing this issue, set
DD_TRACE_SPAN_AGGREGATOR_RLOCK=True. After testing and feedback we intend to make True the default value.
Deprecation Notes
DD_CALL_BASIC_CONFIGwill be removed in the upcoming 2.0.0 release. As an alternative toDD_CALL_BASIC_CONFIG, you can calllogging.basicConfig()to configure logging in your application.DD_LOG_FORMATis deprecated and will be removed in 2.0.0. As an alternative, please follow the log injection formatting as provided in the log injection docs.
Bug Fixes
-
CI Visibility: fixes an issue where the CIVisibility client would raise an exception if it was started in agentless mode without the DD_API_KEY set
-
core: This fix moves
cmakefrominstall_requirestosetup_requires. -
data_streams: This change fixes a bug in the Kafka & SQS integrations in which the Data Streams product code incorrect set timestamps for statistics. This led to all points being submitted for the same timestamp (the start of the application).
-
dynamic instrumentation: handle null literal in conditions and expressions.
-
dynamic instrumentation: fixed a bug that prevented span decoration probes from being received and instrumented.
-
dynamic instrumentation: ensure that probes that fail to be instrumented because of invalid conditions/expressions are reported with status
ERRORin the UI. -
CI Visibility: This fix solves an issue where the git unshallow command wasn't called
-
tracing: Ensures health metrics are tagged with the correct values.
-
CI Visibility: This fix resolves an issue where test skipping was not working properly.
-
langchain: This fix resolves an issue where chat messages and embedding arguments
passed in as keyword arguments were not parsed correctly and resulted in anArgumentError. -
langchain: This fix resolves an issue where
langchain.embeddings.HuggingFaceEmbeddingsembedding
methods, andlangchain.vectorstores.Milvus.similarity_searchwere patched twice due to a nested class hierarchy inlangchain. -
profiling: prevent deadlocks while recording events of different type.
-
pytest: This fix resolves an issue where test modules could be non-existent, causing errors in the CI Visibility product.
-
CI visibility: fix version and step arguments gathering to enable plugin compatibility with pytest-bdd 6.1.x
-
kafka: Resolves
UnicodeDecodeErrorraised when kafka messages key contain characters that are not supported by UTF-8 encoding. -
lib-injection: Adds support for non-root run applications in containers.
-
This fix resolves an issue causing span tags used by the Datadog backend not to be inherited by spans that exist in a different process from their parents.
Other Changes
- tracing: Previously the maximum size of a span tag was set to the full size of trace writer buffer (via DD_TRACE_WRITER_BUFFER_SIZE_BYTES). With this change the maximum size of span tags will be set to 10% of the size of the writer's buffer. This should decrease the frequency of encoding errors due to large span tags.