Skip to content

Releases: DataDog/dd-trace-py

1.8.1

23 Mar 15:10
54213dc

Choose a tag to compare

Bug Fixes

  • dbapi: The dbapi integration no longer assumes that a cursor object will
    have a rowcount but not all database drivers implement rowcount.
  • botocore: Fix TypeError raised by injecting trace context into Kinesis messages.

1.10.0

22 Mar 21:32
af4555b

Choose a tag to compare

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.ROWS is deprecated. Use ddtrace.ext.db.ROWCOUNT instead.

New Features

  • starlette: Add http.route tag to starlette.request spans.
  • fastapi: Add http.route tag to fastapi.request spans.
  • 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: use server.request.uri.raw instead, 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.body tag 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.route was only set if use_handler_resource_format and use_legacy_resource_format were set to False.
  • 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

15 Mar 18:25
af4555b

Choose a tag to compare

1.10.0rc3 Pre-release
Pre-release

Bug Fixes

  • django: Fixes an issue where http.route was only set if use_handler_resource_format and use_legacy_resource_format were set to False.
  • 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

20 Mar 15:46
63d99e6

Choose a tag to compare

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

08 Mar 11:04
3a68f40

Choose a tag to compare

1.10.0rc2 Pre-release
Pre-release

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_ALL is deprecated and will be removed in the next major version. Gevent compatibility is now automatic
    and does not require extra configuration when running with ddtrace-run. If not using ddtrace-run, please import ddtrace.auto before calling gevent.monkey.patch_all().

Other Changes

  • remote_config: Change the level of remote config startup logs to debug.

1.9.3

08 Mar 14:23
627e450

Choose a tag to compare

Deprecation Notes

  • gevent: DD_GEVENT_PATCH_ALL is deprecated and will be removed in the next major version. Gevent compatibility is now automatic and does not require extra configuration when running with ddtrace-run. If not using ddtrace-run, please import ddtrace.auto before calling gevent.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

03 Mar 22:27
e8ad497

Choose a tag to compare

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 KeyError exceptions when ASM_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

03 Mar 15:22
31ba719

Choose a tag to compare

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

02 Mar 16:53
58017b1

Choose a tag to compare

1.10.0rc1 Pre-release
Pre-release

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.ROWS is deprecated. Use ddtrace.ext.db.ROWCOUNT instead.

New Features

  • starlette: Add http.route tag to starlette.request spans.
  • fastapi: Add http.route tag to fastapi.request spans.
  • 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: use server.request.uri.raw instead, 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.body tag 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

27 Feb 18:48
90c89a5

Choose a tag to compare

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. Use ddtrace.ext.net.TARGET_PORT instead.
  • dbapi: ddtrace.ext.sql.ROWS is deprecated. Use ddtrace.ext.db.ROWCOUNT instead.
  • cassandra: ddtrace.ext.cassandra.ROW_COUNT is deprecated. Use ddtrace.ext.db.ROWCOUNT instead.

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.

New Features ...

Read more