Prelude
profiling: Code provenance is a feature that enhances the "My code" experience in the Datadog UI by allowing the tracer to report packaging metadata about installed source files. This information is used to distinguish between user and third-party code.
New Features
- aws: Adds span tags for consistency with tags collected by Datadog for AWS metrics and logs.
- botocore: Adds the ability to control which botocore submodules will be patched.
- ASM: Send WAF metrics over telemetry
- pytest: This introduces test suite and module level visibility for the pytest integration. Pytest test traces will now include test session, test module, test suite, and test spans, which correlate to pytest session, pytest package, pytest module, and pytest test functions respectively.
- redis: Introducing redis command span tag max length configuration for `aioredis<aioredis>`, `aredis<aredis>`, `redis<redis>`, `rediscluster<rediscluster>`, and `yaaredis<yaaredis>` integrations.
- profiling: Code provenance is enabled by default.
- OpenAI: Add integration with support for metrics, logs and traces from
OpenAI requests. See [the docs](https://ddtrace.readthedocs.io/en/stable/integrations.html#openai) for more information.
Bug Fixes
- dependencies: Resolves an issue where ddtrace installs an incompatible version of cattrs when Python 3.6 is used.
- tracing: Resolves an issue where `DD_TRACE_<INTEGRATION>_ENABLED=False` could not be used to disable the following integrations when `ddtrace-run` was used: flask, django, bottle, falcon, and pyramid.
- asgi: Ensures `error.message` and `error.stack` tags are set when an exception is raised in a route.
- appsec: Fixes an encoding error when we are unable to cleanup the AppSec request context associated with a span.
- ASM: Fixes encoding error when using AppSec and a trace is partial flushed.
- CI Visibility: This fix resolves an issue where the tracer was doing extra requests if the `DD_CIVISIBILITY_ITR_ENABLED` env var was not set.
- CI Visibility: This fix resolves an issue where the API call would fail because it is reporting a null service name
- bootstrap: fixed an issue with the behavior of `ddtrace.auto` that could have caused incompatibilities with frameworks such as `gevent` when used as a programmatic alternative to the `ddtrace-run` command.
- django: Fixed a bug that prevented a Django application from starting with celery and gevent workers if `DJANGO_SETTINGS_MODULE` was not explicitly set.
- tracing: Fixes a cryptic encoding exception message when a span tag is not a string.
- ASM: fix extract_body for Django such that users of Django Rest Framework can still use custom parsers.
- flask: Remove patching for Flask hooks `app.before_first_request` and `bp.before_app_first_request` if Flask version \>= 2.3.0.
- gevent: Fix a bug that caused traceback objects to fail to pickle when using gevent.
- OpenAI: Resolved an issue where OpenAI API keys set in individual requests rather than as an environment variable caused an error in the integration.
- profiler: Fixed a bug that caused segmentation faults in applications that use protobuf as a runtime dependency.
- redis: Resolves an issue where the aioredis/aredis/yaaredis integrations cross-imported a helper method from the redis integration, which triggered redis patching before the redis integration was fully loaded.
- wsgi: Resolves an issue where accessing the `__len__` attribute on traced wsgi middlewares raised a TypeError
- django: Adds catch to guard against a ValueError, AttributeError, or NotImplementedError from being thrown when evaluating a django cache result for `db.row_count` tag.
- lib-injection: Ensure local package is installed. Previously the package
could still be pulled from the internet causing application slowdowns.
- kafka: Fixes `TypeError` raised when arbitrary keyword arguments are passed to `confluent_kafka.Consumer`
- profiler: Fix support for latest versions of protobuf.
- psycopg: Resolves an issue where an AttributeError is raised when `psycopg.AsyncConnection` is traced.
- sanic: Resolves `sanic_routing.exceptions.InvalidUsage` error raised when gevent is installed or `DD_UNLOAD_MODULES_FROM_SITECUSTOMIZE` is set to True.
- elasticsearch: This fix resolves an issue where the tracer would throw an error when patching unsupported versions of elasticsearch (\> 8.0). Patching is now skipped if an unsupported version is detected.
Other Changes
- span: Increases the traceback limit in `error.stack` tags from 20 to 30
- aws_lambda: Logs warnings and exceptions on cold start only.
---