Releases: DataDog/dd-trace-py
1.8.1
1.10.0
Prelude
Application Security Management (ASM) has added Django support for blocking malicious users using one click within Datadog.
Note
One click blocking for ASM is currently in beta.
Deprecation Notes
- dbapi:
ddtrace.ext.mongo.ROWSis deprecated. Useddtrace.ext.db.ROWCOUNTinstead.
New Features
- starlette: Add http.route tag to
starlette.requestspans. - fastapi: Add http.route tag to
fastapi.requestspans. - ASM: Add support for one click blocking of user ids with the Django framework using Remote Configuration Management.
- ASM: This introduces the "suspicious request blocking" feature for Django and Flask.
Known Issues
- ASM: There is a known issue with the flask support for any rule blocking on
server.request.path_params. The request will be correctly blocked but the client application will be receiving and processing the suspicious request. Possible workaround: useserver.request.uri.rawinstead, if you want the request to be blocked before entering the flask application.
Bug Fixes
- dbapi: The dbapi integration no longer assumes that a cursor object will have a rowcount as not all database drivers implement rowcount.
- dbm: Support sql queries with the type
byte. - elasticsearch: Omit large
elasticsearch.bodytag values that are
greater than 25000 characters to prevent traces from being too large to send. - aws_lambda: This fix resolves an issue where existing signals were wrapped multiple times.
- profiling: Handles a race condition on process shutdown that would cause an error about a module not being started to occasionally appear in the logs.
- Fix for KeyError exceptions when when ASM_FEATURES (1-click activation) disabled all ASM products. This could cause 1-click activation to work incorrectly in some cases.
- django: Fixes an issue where
http.routewas only set ifuse_handler_resource_formatanduse_legacy_resource_formatwere set toFalse. - ASM: Resolves installation issues with compiling native code on Windows and unknown platforms.
- dynamic_instrumentation: This change fixes a bug whereby probes that have been disabled/removed from the front-end would not be removed by the client library.
- httplib: Fixes an issue with patching of http client upon import
- Ensure DD_REMOTE_CONFIGURATION_ENABLED environment variable disables remote config if set to False.
- ASM: Solve some corner cases where a Flask blocking request would fail because headers would be already sent.
- ASM: Solve the content-type not always being correct in blocking responses.
- ASM: Ensure the blocking responses have the following tags: http.url, http.query_string, http.useragent, http.method, http.response.headers.content-type and http.response.headers.content-length.
- ASM: fix memory leaks and memory corruption in the interface between ASM and the WAF library
- psycopg2: Fixes a bug with DSN parsing integration.
Other Changes
- remote_config: Change the level of remote config startup logs to debug.
1.10.0rc3
Bug Fixes
- django: Fixes an issue where
http.routewas only set ifuse_handler_resource_formatanduse_legacy_resource_formatwere set toFalse. - ASM: Resolves installation issues with compiling native code on Windows and unknown platforms.
- dynamic_instrumentation: This change fixes a bug whereby probes that have been disabled/removed from the front-end would not be removed by the client library.
- Ensure DD_REMOTE_CONFIGURATION_ENABLED environment variable disables remote config if set to False.
- httplib: Fixes an issue with patching of http client upon import
1.9.4
Bug Fixes
- ASM: This fix resolves an issue where some 403 body responses in Django where wrongly replaced by datadog 403 block response body.
- ASM: Resolves installation issues with compiling native code on Windows and unknown platforms.
- httplib: Fixes an issue with patching of http client upon import
1.10.0rc2
Bug Fixes
- ASM: Solve some corner cases where a Flask blocking request would fail because headers would be already sent.
- ASM: Solve the content-type not always being correct in blocking responses.
- ASM: Ensure the blocking responses have the following tags: http.url, http.query_string, http.useragent, http.method, http.response.headers.content-type and http.response.headers.content-length.
- ASM: fix memory leaks and memory corruption in the interface between ASM and the WAF library
- psycopg2: Fixes a bug with DSN parsing integration.
- gevent: This fix resolves an incompatibility between ddtrace and gevent that caused threads to hang in certain configurations, for example
the profiler running in a gunicorn application's gevent worker process.
Deprecations:
- gevent:
DD_GEVENT_PATCH_ALLis deprecated and will be removed in the next major version. Gevent compatibility is now automatic
and does not require extra configuration when running withddtrace-run. If not usingddtrace-run, please importddtrace.autobefore callinggevent.monkey.patch_all().
Other Changes
- remote_config: Change the level of remote config startup logs to debug.
1.9.3
Deprecation Notes
- gevent:
DD_GEVENT_PATCH_ALLis deprecated and will be removed in the next major version. Gevent compatibility is now automatic and does not require extra configuration when running withddtrace-run. If not usingddtrace-run, please importddtrace.autobefore callinggevent.monkey.patch_all().
Bug Fixes
- psycopg2: Fixes a bug with DSN parsing integration.
- gevent: This fix resolves an incompatibility between ddtrace and gevent that caused threads to hang in certain configurations, for example the profiler running in a gunicorn application's gevent worker process.
1.9.2
Bug Fixes
-
aws_lambda: Resolves an exception not being handled, which occurs when no
root span is found before a lambda times out. -
asm: fix memory leaks and memory corruption in the interface between ASM and
the WAF library -
rcm: Fix for
KeyErrorexceptions whenASM_FEATURES(1-click activation)
disabled all ASM products. This could cause 1-click activation to work incorrectly in some cases. -
dbapi: The dbapi integration no longer assumes that a cursor object will
have a rowcount but not all database drivers implement rowcount. -
elasticsearch: Omit large elasticsearch.body tag values that are
greater than 25000 characters to prevent traces from being too large to send.
1.9.1
NOTICE
This release mistakenly was tagged off of the 1.x branch instead of 1.9. It contains changes intended for release in version v1.10. Please use v1.9.2 instead.
1.10.0rc1
Prelude
Application Security Management (ASM) has added Django support for blocking malicious users using one click within Datadog.
Note
One click blocking for ASM is currently in beta.
Deprecation Notes
- dbapi:
ddtrace.ext.mongo.ROWSis deprecated. Useddtrace.ext.db.ROWCOUNTinstead.
New Features
- starlette: Add http.route tag to
starlette.requestspans. - fastapi: Add http.route tag to
fastapi.requestspans. - ASM: Add support for one click blocking of user ids with the Django framework using Remote Configuration Management.
- ASM: This introduces the "suspicious request blocking" feature for Django and Flask.
Known Issues
- ASM: There is a known issue with the flask support for any rule blocking on
server.request.path_params. The request will be correctly blocked but the client application will be receiving and processing the suspicious request. Possible workaround: useserver.request.uri.rawinstead, if you want the request to be blocked before entering the flask application.
Bug Fixes
-
dbapi: The dbapi integration no longer assumes that a cursor object will have a rowcount as not all database drivers implement rowcount.
-
elasticsearch: Omit large
elasticsearch.bodytag values that are
greater than 25000 characters to prevent traces from being too large to send. -
aws_lambda: This fix resolves an issue where existing signals were wrapped multiple times.
-
profiling: Handles a race condition on process shutdown that would cause an error about a module not being started to occasionally appear in the logs.
-
Fix for KeyError exceptions when when ASM_FEATURES (1-click activation) disabled all ASM products. This could cause 1-click activation to work incorrectly in some cases.
1.9.0
Prelude
Application Security Management (ASM) has added Django support for blocking malicious IPs using one click within Datadog.
Note
One click blocking for ASM is currently in beta.
Application Security Management (ASM) has added Flask support for blocking malicious IPs using one click within Datadog.
Note
One click blocking for ASM is currently in beta.
Deprecation Notes
- grpc: Deprecates
ddtrace.contrib.grpc.constants.GRPC_PORT_KEY. Useddtrace.ext.net.TARGET_PORTinstead. - dbapi:
ddtrace.ext.sql.ROWSis deprecated. Useddtrace.ext.db.ROWCOUNTinstead. - cassandra:
ddtrace.ext.cassandra.ROW_COUNTis deprecated. Useddtrace.ext.db.ROWCOUNTinstead.
Known Issues
- remote config: There is a known issue with remote configuration management (RCM) when paired with gevent which can cause child processes to deadlock. If you are experiencing issues, we recommend disabling RCM with
DD_REMOTE_CONFIGURATION_ENABLED=fals e. Note, this will disable one click activation for ASM. - gunicorn: ddtrace-run does not work with gunicorn. To instrument a gunicorn application, follow the instructions here.