Upgrade Notes
- CI Visibility:
DD_CIVISIBILITY_ITR_ENABLED
now defaults to true, and the Datadog API (configured via the Datadog dashboard) now determines whether code coverage and test skipping are enabled. - CI Visibility: the CI Visibility service is no longer enabled when the initial query to the Datadog test service settings API fails due to a 403 status code.
New Features
- botocore: Adds optional feature to propagate context between producers and consumers for AWS SQS, AWS SNS, and AWS Kinesis via DD_BOTOCORE_PROPAGATION_ENABLED environment variable. Adds optional feature to disable tracing of AWS SQS poll() operation and AWS Kinesis 'get_records()' operation when no data is consumed via DD_BOTOCORE_EMPTY_POLL_ENABLED environment variable.
- tracing: Adds new tag python_main_package containing the name of the main package of the application.
- profiling: Adds new tag python_main_package containing the name of the main package of the application.
- ASM: API Security schema collection is now officially supported for Django, Flask and FastAPI. It can be enabled in the tracer using environment variable DD_API_SECURITY_ENABLED=true It will only be active when ASM is also enabled.
- elasticsearch: This allows custom tags to be set on Elasticsearch spans via the Pin interface.
- botocore: This introduces tracing support for bedrock-runtime operations.
See the docs for more information. - datastreams: this change adds kombu auto-instrumentation for datastreams monitoring.
- tracing: this change adds the
DD_KOMBU_DISTRIBUTED_TRACING
flag (defaultTrue
) - Vulnerability Management for Code-level (IAST): Add support for CMDi in langchain.
- botocore: Add the ability to inject trace context into the input field of botocore stepfunction start_execution and start_sync_execution calls.
- Removes another place where we always load instrumentation telemetry, even if it is disabled
- tracing: This introduces the ability to disable tracing at runtime based on configuration values sent from the Datadog frontend. Disabling tracing in this way also disables instrumentation telemetry.
- tracing: Adds support for remote configuration of
DD_TRACE_HEADER_TAGS
- tracing: Add support for remote configuration of trace-logs correlation.
- grpc/grpc_aio: reports the available target host in client spans as
network.destination.ip
if only an IP is available,peer.hostname
otherwise. - span: Adds a public api for setting span links
- starlette,fastapi: Trace background tasks using span links
Bug Fixes
- ASM: This fix resolves an issue where an exception would be logged while parsing an empty body JSON request.
- CI Visibility: fixes an issue where coverage data for suites could be lost for long-running test sessions, reducing the possibility of skipping tests when using the Intelligent Test Runner.
- IAST: Don't split AST Assign nodes since it's not needed for propagation to work.
- ASM: This fix resolves an issue where suspicious request blocking on request data was preventing API Security to collect schemas in FastAPI, due to route not being computed.
- ASM: This fix resolves an issue where ASM custom blocking actions with a redirect action could cause the server to drop the response.
- Fixed an incompatible version requirements for one of the internal dependencies that could have caused an exception to be raised at runtime with Python 3.12.
- data_streams: This change fixes a bug leading to lag being reported as 1 offset instead of 0 offsets.
- IAST: fixes import overhead when IAST is disabled.
- Fix an incomplete support for pkg_resouces that could have caused an exception on start-up.
- Fix an issue that caused an exception to be raised when trying to access resource files via
pkg_resources
. - Fix for an import issue that caused the pytest plugin to fail to properly initialize a test session and exit with an import exception.
- openai: This fixes a bug that prevents logs from being correlated with traces in the Datadog UI.
- langchain: This fixes a bug that prevents logs from being correlated with traces in the Datadog UI.
- openai: This fix resolves an issue where an internal OpenAI method SyncAPIClient._process_response
was not being patched correctly and led to to an AttributeError while patching. - profiling: handle a potential system error that may be raised when running a Celery-based application with CPython 3.11.
- Fixed an issue that could have caused an exception as a result of a concurrent access to some internal value cache.
- tracing: Ensures span links are serialized with the expected traceflag when
DD_TRACE_API_VERSION=v0.4
- ASM: This fix resolves an issue where IP Headers configured by the user in the environment could not work for frameworks handling requests with case insensitive headers like FastAPI.
- Vulnerability Management for Code-level (IAST): Fixes a bug in the
str
aspect where encoding and errors arguments were not honored correctly. - Vulnerability Management for Code-level (IAST): Fix an unhandled ValueError in
ast_function
thrown in some cases (i.e. Numpy arrays when converted to bool). - opentelemetry: Ensures that span links are serialized in a json-compatible representation.
- Pin importlib_metadata to 6.5.0 to avoid its issue 455 (python/importlib_metadata#455).
- profiler: Fixes a sigabrt when shutdown occurs during an upload
- otel: Ensures all otel sampling decisions are consistent with Datadog Spans. This prevents otel spans in a distrbuted trace from being sampled differently than Datadog spans in the same trace.
- tracing: Fix an issue where remote configuration values would not be reverted when unset in the UI.
- tracing: Ensures hostnames are reported in statsd metrics if
DD_TRACE_REPORT_HOSTNAME=True
(default value isFalse
).
Other Changes
- setup: pins the default macOS deployment target to 10.14.
- tracing: Updates the default value of
DD_TRACE_PROPAGATION_STYLE
fromtracecontext,datadog
todatadog,tracecontext
. With this change datadog headers will be parsed before tracecontext headers. This change is backwards compatible and should not affect existing users.