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 <span class="title-ref">DD_BOTOCORE_PROPAGATION_ENABLED</span> environment variable. Adds optional feature to disable tracing of AWS SQS <span class="title-ref">poll()</span> operation and AWS Kinesis 'get_records()' operation when no data is consumed via <span class="title-ref">DD_BOTOCORE_EMPTY_POLL_ENABLED</span> environment variable.
- tracing: Adds new tag <span class="title-ref">python_main_package</span> containing the name of the main package of the application. profiling: Adds new tag <span class="title-ref">python_main_package</span> 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](https://ddtrace.readthedocs.io/en/stable/integrations.html#botocore) for more information.
- datastreams: this change adds kombu auto-instrumentation for datastreams monitoring. tracing: this change adds the `DD_KOMBU_DISTRIBUTED_TRACING` flag (default `True`)
- 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 <span class="title-ref">SyncAPIClient.\_process_response</span>
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 (<https://github.com/python/importlib_metadata/issues/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 is `False`).
Other Changes
- setup: pins the default macOS deployment target to 10.14.
- tracing: Updates the default value of `DD_TRACE_PROPAGATION_STYLE` from `tracecontext,datadog` to `datadog,tracecontext`. With this change w3c tracecontext headers will be parsed before datadog headers. This change is backwards compatible and should not affect existing users.
---