Skip to content

Releases: DataDog/dd-trace-py

1.15.0rc1

07 Jun 21:11
32f38f2

Choose a tag to compare

1.15.0rc1 Pre-release
Pre-release

New Features

  • pyramid: Adds http.route tag to pyramid.request spans.
  • data_streams: Add data streams core integration and instrument the confluent Kafka library with it. For more information, check out the docs, https://docs.datadoghq.com/data_streams/
  • dynamic instrumentation: Added support for span decoration probes.

Bug Fixes

  • ASM: This fix resolves an issue where the WAF rule file specified by DD_APPSEC_RULES was wrongly updated and modified by remote config.
  • celery: Resolves an issue where hostname tags were not set in spans generated by celery>4.0.
  • django: Resolves an issue where the resource name of django.request span did not contain the full name of a view when DD_DJANGO_USE_HANDLER_RESOURCE_FORMAT=True. This issue impacts django>=4.0.
  • CI Visibility: This fix resolves the compatibility for Gitlab 16.0 deprecated urls
  • openai: Resolves an issue where using an array of tokens or an array of token arrays for the Embeddings endpoint caused an AttributeError.
  • profiling: Fixed an issue with gunicorn and gevent workers that occasionally caused an AttributeError exception to be raised on profiler start-up.
  • psycopg: Fixes ValueError raised when dsn connection strings are parsed. This was fixed in ddtrace v1.9.0 and was re-introduced in v1.13.0.
  • gunicorn: This fix ensures ddtrace threads do not block the master process from spawning workers when DD_TRACE_DEBUG=true. This issue impacts gunicorn applications using gevent and python<=3.6.

1.14.0

01 Jun 14:25
00e30cf

Choose a tag to compare

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 for more information.

Bug Fixes

  • ASM: This fix resolves an issue where the WAF rule file specified by DD_APPSEC_RULES was wrongly updated and modified by remote config.

  • django: Resolves an issue where the resource name of django.request span did not contain the full name of a view when DD_DJANGO_USE_HANDLER_RESOURCE_FORMAT=True. This issue impacts django>=4.0.

  • openai: Resolves an issue where using an array of tokens or an array of token arrays for the Embeddings endpoint caused an AttributeError.

  • psycopg: Fixes ValueError raised when dsn connection strings are parsed. This was fixed in ddtrace v1.9.0 and was re-introduced in v1.13.0.

  • gunicorn: This fix ensures ddtrace threads do not block the master process from spawning workers when DD_TRACE_DEBUG=true. This issue impacts gunicorn applications using gevent and python<=3.6.

  • 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.

1.14.0rc2

30 May 14:56
00e30cf

Choose a tag to compare

1.14.0rc2 Pre-release
Pre-release

Bug Fixes

  • ASM: This fix resolves an issue where the WAF rule file specified by DD_APPSEC_RULES was wrongly updated and modified by remote config.
  • django: Resolves an issue where the resource name of django.request span did not contain the full name of a view when DD_DJANGO_USE_HANDLER_RESOURCE_FORMAT=True. This issue impacts django>=4.0.
  • openai: Resolves an issue where using an array of tokens or an array of token arrays for the Embeddings endpoint caused an AttributeError.
  • psycopg: Fixes ValueError raised when dsn connection strings are parsed. This was fixed in ddtrace v1.9.0 and was re-introduced in v1.13.0.
  • gunicorn: This fix ensures ddtrace threads do not block the master process from spawning workers when DD_TRACE_DEBUG=true. This issue impacts gunicorn applications using gevent and python<=3.6.

1.13.4

26 May 17:48
a013b35

Choose a tag to compare

Bug Fixes

  • django: Resolves an issue where the resource name of django.request span did not contain the full name of a view when DD_DJANGO_USE_HANDLER_RESOURCE_FORMAT=True. This issue impacts django>=4.0.

  • 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

  • openai: Resolves an issue where using an array of tokens or an array of token arrays for the Embeddings endpoint caused an AttributeError.

  • psycopg: Fixes ValueError raised when dsn connection strings are parsed. This was fixed in ddtrace v1.9.0 and was re-introduced in v1.13.0.

  • wsgi: Resolves an issue where accessing the __len__ attribute on traced wsgi middlewares raised a TypeError

  • gunicorn: This fix ensures ddtrace threads do not block the master process from spawning workers when DD_TRACE_DEBUG=true. This issue impacts gunicorn applications using gevent and python<=3.6.

  • 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

  • sanic: Resolves sanic_routing.exceptions.InvalidUsage error raised when gevent is installed or DD_UNLOAD_MODULES_FROM_SITECUSTOMIZE is set to True.

1.12.9

23 May 14:44
e0deef0

Choose a tag to compare

Bug Fixes

  • django: Resolves an issue where the resource name of django.request span did not contain the full name of a view when DD_DJANGO_USE_HANDLER_RESOURCE_FORMAT=True. This issue impacts django>=4.0.

  • asgi: Ensures error.message and error.stack tags are set when an exception is raised in a route.

  • wsgi: Resolves an issue where accessing the __len__ attribute on traced wsgi middlewares raised a TypeError

  • gunicorn: This fix ensures ddtrace threads do not block the master process from spawning workers when DD_TRACE_DEBUG=true. This issue impacts gunicorn applications using gevent and python<=3.6.

  • 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

  • sanic: Resolves sanic_routing.exceptions.InvalidUsage error raised when gevent is installed or DD_UNLOAD_MODULES_FROM_SITECUSTOMIZE is set to True.

1.11.6

22 May 18:02
54500dd

Choose a tag to compare

Bug Fixes

  • asgi: Ensures error.message and error.stack tags are set when an exception is raised in a route.
  • gunicorn: This fix ensures ddtrace threads do not block the master process from spawning workers when DD_TRACE_DEBUG=true. This issue impacts gunicorn applications using gevent and python<=3.6.
  • sanic: Resolves sanic_routing.exceptions.InvalidUsage error raised when gevent is installed or DD_UNLOAD_MODULES_FROM_SITECUSTOMIZE is set to True.

1.10.4

22 May 18:02
15bece2

Choose a tag to compare

Bug Fixes

  • asgi: Ensures error.message and error.stack tags are set when an exception is raised in a route.
  • django: Fixed a bug that prevented a Django application from starting with celery and gevent workers if DJANGO_SETTINGS_MODULE was not explicitly set.
  • flask: Remove patching for Flask hooks app.before_first_request and bp.before_app_first_request if Flask version >= 2.3.0.
  • profiler: Fixed a bug that caused segmentation faults in applications that use protobuf as a runtime dependency.
  • gunicorn: This fix ensures ddtrace threads do not block the master process from spawning workers when DD_TRACE_DEBUG=true. This issue impacts gunicorn applications using gevent and python<=3.6.
  • sanic: Resolves sanic_routing.exceptions.InvalidUsage error raised when gevent is installed or DD_UNLOAD_MODULES_FROM_SITECUSTOMIZE is set to True.

1.9.7

19 May 20:05
b92a919

Choose a tag to compare

Bug Fixes

  • asgi: Ensures error.message and error.stack tags are set when an exception is raised in a route.
  • flask: Remove patching for Flask hooks app.before_first_request and bp.before_app_first_request if Flask version >= 2.3.0.
  • profiler: Fixed a bug that caused segmentation faults in applications that use protobuf as a runtime dependency.
  • gunicorn: This fix ensures ddtrace threads do not block the master process from spawning workers when DD_TRACE_DEBUG=true. This issue impacts gunicorn applications using gevent and python<=3.6.
  • sanic: Resolves sanic_routing.exceptions.InvalidUsage error raised when gevent is installed or DD_UNLOAD_MODULES_FROM_SITECUSTOMIZE is set to True.

1.14.0rc1

18 May 15:54
f5854aa

Choose a tag to compare

1.14.0rc1 Pre-release
Pre-release

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 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 artibrary keyword arguments are passed toconfluent_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.

1.13.3

16 May 15:06
eef9d09

Choose a tag to compare

Bug Fixes

  • psycopg: Resolves an issue where an AttributeError is raised when psycopg.AsyncConnection is traced.