Upgrade Notes
- The
wrapt
andpsutil
packages are vendored to help users avoid building these packages if wheels were not available for a given platform. This reverses a change released in v2.0.0.
New Features
- CI Visibility: adds ITR support for
unittest
- CI Visibility: adds start/end line support for
pytest
test spans - CI Visibility: adds start/end line source file data to
unittest
test spans - aiohttp: This introduces basic tracing of streaming responses that stay open long after the on_prepare signal has been sent.
- CI Visibility: introduce pytest hooks for modifying the module, suite, and test naming logic
- CI Visibility: add support for AWS Codepipeline to CI env var gathering
- datastreams: this change adds message payload size metrics and aggregations for Kafka.
- structlog: Wraps get_logger function in order to add datadog injection processor regardless of configuration
- openai: This adds support for openai v1.
- Source Code: filters Git repo URLs from env vars and setuptools
- logbook: This introduces log correlation for the logbook library. Refer to
logbook-docs <ddtrace.contrib.logbook>
for more details. - loguru: This introduces log correlation for the loguru library. Refer to
loguru-docs <ddtrace.contrib.loguru>
for more details. - openai: This adds support for tagging function call arguments when using OpenAI's function calling feature.
- Adds ARM64 support for Single-Step instrumentation
- structlog: This introduces log correlation for the structlog library. Refer to
structlog-docs <ddtrace.contrib.structlog>
for more details. - celery: Adds Python 3.11 and 3.12 support for the celery integration.
Known Issues
- ASM: fix a body read problem on some corner case where passing empty content length makes wsgi.input.read() blocks.
Bug Fixes
- Application Security Management (ASM): fix a body read error when
Transfer-Encoding: chunked
header is sent - CI Visibility: fixes an issue where class-based test methods with the same name across classes would be considered duplicates, and cause one (or more) tests to be dropped from results, by adding
--ddtrace-include-class-name
as an optional flag (defaulting to false) to prepend the class name to the test name. - CI Visibility: fixes a crash where the unittest integration would try to enable coverage when tests are run even if the Intelligent Test Runner is not enabled.
- data_streams: This fix resolves an issue where tracing would crash if a kafka client produced a message with no key or value.
- CI: fixes an issue which prevented the library from filtering user credentials for SSH Git repository URLs
- dynamic instrumentation: fix an issue that caused function probes on the same module to fail to instrument and be reported in the
ERROR
status in the UI if the module was not yet imported. - Use a unique default service name across all the products provided by the library when one is not given via the configuration interface.
- sampling: This fix reverts a refactor which affected how the tracer handled the trace-agent's recommended trace sampling rates, leading to an unintended increase in traces sampled.
- tracing: Fixes a msgpack import error when
DD_TRACE_API
is set tov0.5
- fix(profiling): numeric type exception in memalloc When pushing allocation samples, an exception was being thrown due to a float being passed instead of an integer. We now cast the ceiled value to an integer.
- CI Visibility: fixes
unittest
data not being initialized properly - CI Visibility: fixes an issue where just importing unittest enabled CIVisibility and potentially caused unexpected logs and API requests
- Vulnerability Management for Code-level (IAST): This fix addresses AST patching issues where custom functions or methods could be replaced by aspects with differing argument numbers, causing runtime errors as a result. Furthermore, it addresses a case during patching where the module is inadvertently passed as the first argument to the aspect.
- Vulnerability Management for Code-level (IAST): Fix potential string id collisions that could cause false positives with non tainted objects being marked as tainted.
- IAST: This fix resolves an issue where JSON encoder would throw an exception while encoding a tainted dict or list.
- Vulnerability Management for Code-level (IAST): This fix resolves an issue where SimpleJSON encoder would throw an exception while encoding a tainted dict or list.
- ASM: add support for psycopg2 adapt mechanism to LazyTaintList, preventing a ProgrammingError when using psycopg2 with IAST.
- tracing: This fix resolves an issue where unserializable tracer attributes caused crashes when
DD_TRACE_DEBUG
was set. - This fix resolves an issue where
confluent_kafka
'sSerializingProducer
andDeserializingConsumer
classes were incorrectly patched, causing crashes when these classes are in use with Datadog patching. - langchain: This fix resolves an issue with tagging pydantic SecretStr type api keys.
- lib injection: Fix permissions error raised when non-root users copy single step instrumentation files.
- redis: The Datadog Agent removes command arguments from the resource name. However there are cases, like compressed keys, where this obfuscation cannot correctly remove command arguments. To safeguard that situation, the resource name set by the tracer will only be the command (e.g. SET) with no arguments. To retain the previous behavior and keep arguments in the span resource, with the potential risk of some command arguments not being fully obfuscated, set
DD_REDIS_RESOURCE_ONLY_COMMAND=false
.
Other Changes
- tags: Previously
DD_TRACE_X_DATADOG_TAGS_MAX_LENGTH
had a max limit setting of 512 characters. This change removes that limit but keeps the default at 512.