Changelog
### 0.25.0
```
This release includes several core improvements and addresses pain points in our testing/CI. The release also adds a new integration for Algolia Search.
Changes
Improvements
- Type cast port number to avoid surprise unicode type (892 -- thanks tancnle)
- Add support for Python 3.7 (864)
- [writer] Enhance Q implementation with a wait based one (862)
- [core] Add Span 'manual.keep' and 'manual.drop' tag support (849)
- [core] Vendor msgpack dependency (848)
- Fix http.url tag inconsitency (899)
- aiohttp: do not set query string in http.url tag (923)
- tornado: do not include query string in the http.url tag (922)
- bottle: fix query string embedded in URL (921)
- django: remove query string from http.url tag (920)
Integrations
- Implement algolia search (894)
Tooling
- [dev/tooling] Enforce single quote strings (884)
- [tests] Leverage tox environment listing to simplify CircleCI tox target list (882)
Testing
- tests/tornado: enhance `test_concurrent_requests` (915)
- doc: disable fixed sidebar (906)
- [opentracer] Refactor time usage (902)
- [opentracer] Fix flaky test based on sleep (901)
- [internal] Add and use RuntimeWorker.join() to remove race condition in testing (887)
```
### 0.24.0
```
This release introduces a new feature (disabled by default), supports new versions of integrations and improves our testing and tooling.
Changes
Improvements
- [core] Enable requests integration by default (879)
- [core] Fix logging with unset DATADOG_PATCH_MODULES (872)
- [core] Use DEBUG log level for RateSampler initialization (861 -- thanks bmurphey)
- [core] Guard against when there is no current call context (852)
- [core] Collect run-time metrics (819)
Integrations
- [mysql] Remove mysql-connector 2.1 support (866)
- [aiobotocore] Add support for versions up to 0.10.0 (865)
Tooling
- [dev/tooling] Update flake8 to 3.7 branch (856)
- [dev/tooling] Add script to build wheels (853)
- [ci] Use tox.ini checksum to update cache (850)
Testing
- [tests] Use a macro to persist result to workspace in CircleCI (880)
- [tests] add psycopg2 2.8 support (878)
- [aiohttp] Fix race condition in testing (877)
- [docs] Remove confusing testing instructions from README (874)
- [tests] Add support for aiohttp up to 3.5 (873)
- Remove useless __future__ imports (871)
- [testing] Remove nose usage (870)
- [tests] Add support for pytest4 (869)
- [tests] Add testing for Celery 4.3 (868)
- [tests] Enable integration tests in docker-compose environment (863)
- [tests] Do not test celery 4.2 with Kombu 4.4 (858)
- [tests] Fix ddtrace sitecustomize negative test (857)
- [tests] Use spotify cassandra image for tests (855)
- [tests] Fix requests gevent tests (854)
```
### 0.23.0
```
With this release we are introducing a new configuration system across integrations to generate APM events for [Trace Search & Analytics](https://docs.datadoghq.com/tracing/visualization/search/). The other core changes are the beginnings of a new approach to address issues with tracer loads and improve debugging.
Changes
Improvements
* Trace search client configuration (828)
* [core] fix wrapt wrappers sources (836)
* [core] Add Payload class helper (834)
* [internal] Add rate limited logger (822)
Bugs
* Fix for broken celery tests (839 -- thanks JackWink)
Read the [full changeset](https://github.com/DataDog/dd-trace-py/compare/v0.22.0...v0.23.0) and the [release milestone](https://github.com/DataDog/dd-trace-py/milestone/39?closed=1).
```
### 0.22.0
```
This release contains a few improvements for not marking a Celery task as an error if it is an expected and allowed exception, for propagating synthetics origin header, and to vendor our `six` and `wrapt` dependencies.
Changes
Improvements
- [celery] Don't mark expected failures as errors (820 -- thanks sciyoshi)
- [core] Propagate x-datadog-origin (821)
- [core] vendor wrapt and six dependencies (755)
Read the [full changeset](https://github.com/DataDog/dd-trace-py/compare/v0.21.1...v0.22.0) and the [release milestone](https://github.com/DataDog/dd-trace-py/milestone/36?closed=1).
```
### 0.21.1
```
This is a bug fix release that requires no changes to your code.
Included in this release is a fix for some database cursors where we would force `Cursor.execute` and `Cursor.executemany` to return a cursor instead of the originally intended output. This caused an issue specifically with MySQL libraries which tried to return the row count and we were returning a cursor instead.
Changes
Bugs
* [core] Patch logging earlier for ddtrace-run (832)
* [dbapi2] Fix dbapi2 execute/executemany return value (830 )
* [core] Use case-insensitive comparison of header names during extract (826 -- thanks defanator)
Read the [full changeset](https://github.com/DataDog/dd-trace-py/compare/v0.21.0...v0.21.1) and the [release milestone](https://github.com/DataDog/dd-trace-py/milestone/38?closed=1).
```
### 0.21.0
```
With this release we are moving distributed tracing settings to be enabled by default. This change means that you no longer need to explicitly enable distributed tracing for any integration.
Changes
Improvements
- Enable distributed tracing by default (818)
- aiohttp
- bottle
- flask
- molten
- pylons
- pyramid
- requests
- tornado
- [testing] Ensure consistent use of override_config and override_env (815)
- [core] Break up ddtrace.settings into sub-modules (814)
- [tests] Simplify elasticsearch CI test commands (813)
- [core] Remove sending of service info (811)
- [core] Add import hook module (769)
Read the [full changeset](https://github.com/DataDog/dd-trace-py/compare/v0.20.4...v0.21) and the [release milestone](https://github.com/DataDog/dd-trace-py/milestone/35?closed=1).
```
### 0.20.4
```
This is a bug fix release, no code changes are required.
In this release we have fixed a bug that caused some configuration values to not get updated when set.
Changes
Bug fixes
* [bug] Integration config keys not being updated (816)
Read the [full changeset](https://github.com/DataDog/dd-trace-py/compare/v0.20.3...v0.20.4) and the [release milestone](https://github.com/DataDog/dd-trace-py/milestone/37?closed=1).
```
### 0.20.3
```
This is a bug fix release that requires no changes.
This release includes a fix for context propagation with `futures`. Under the right conditions we could incorrectly share a trace context between multiple `futures` threads which result in multiple traces being joined together in one.
Changes
Bug fixes
* [core] Allow futures to skip creating new context if one doesn't exist (806)
Read the [full changeset](https://github.com/DataDog/dd-trace-py/compare/v0.20.2...v0.20.3) and the [release milestone](https://github.com/DataDog/dd-trace-py/milestone/37?closed=1).
```
### 0.20.2
```
No changes are needed to upgrade to `0.20.2`.
This big fix release includes changes to ensure we properly read the HTTP response body from the trace agent before we close the HTTP connection.
Changes
Bug fixes
- [core] Call HTTPResponse.read() before HTTPConnection.close() (800)
Improvements
- [tests] limit grpcio version to >=1.8.0,<1.18.0 (802)
- [tools] Add confirmation to 'rake pypi:release' task (791 )
Read the [full changeset](https://github.com/DataDog/dd-trace-py/compare/v0.20.1...v0.20.2) and the [release milestone](https://github.com/DataDog/dd-trace-py/milestone/36?closed=1).
```
### 0.20.1
```
No changes are needed to upgrade
Changes
Bug fixes
[celery] Ensure `celery.run` span is closed when task is retried (787)
Read the [full changeset](https://github.com/DataDog/dd-trace-py/compare/v0.20.0...v0.20.1) and the [release milestone](https://github.com/DataDog/dd-trace-py/milestone/36?closed=1).
```
### 0.20.0
```
We have added support for logs injection to the tracer. If you are already using `ddtrace-run`, the integration can be enabled with setting the environment variable `DD_LOGS_INJECTION=true`. The default behavior once logs injection is enabled is to have trace information inserted into all log entries. If you prefer more customization, you can manually instrument and configure a log formatter with the tracer information.
Changes
New Integrations
* [mako] Add Mako integration (779 -- thanks wklken)
Enhancements
* [core] Tracer and logs integration (777)
Read the [full changeset](https://github.com/DataDog/dd-trace-py/compare/v0.19.0...v0.20.0) and the [release milestone](https://github.com/DataDog/dd-trace-py/milestone/34?closed=1).
```
Links
- PyPI: https://pypi.org/project/ddtrace
- Changelog: https://pyup.io/changelogs/ddtrace/
- Repo: https://github.com/DataDog/dd-trace-py
This PR updates ddtrace from 0.19.0 to 0.25.0.
Changelog
### 0.25.0 ``` This release includes several core improvements and addresses pain points in our testing/CI. The release also adds a new integration for Algolia Search. Changes Improvements - Type cast port number to avoid surprise unicode type (892 -- thanks tancnle) - Add support for Python 3.7 (864) - [writer] Enhance Q implementation with a wait based one (862) - [core] Add Span 'manual.keep' and 'manual.drop' tag support (849) - [core] Vendor msgpack dependency (848) - Fix http.url tag inconsitency (899) - aiohttp: do not set query string in http.url tag (923) - tornado: do not include query string in the http.url tag (922) - bottle: fix query string embedded in URL (921) - django: remove query string from http.url tag (920) Integrations - Implement algolia search (894) Tooling - [dev/tooling] Enforce single quote strings (884) - [tests] Leverage tox environment listing to simplify CircleCI tox target list (882) Testing - tests/tornado: enhance `test_concurrent_requests` (915) - doc: disable fixed sidebar (906) - [opentracer] Refactor time usage (902) - [opentracer] Fix flaky test based on sleep (901) - [internal] Add and use RuntimeWorker.join() to remove race condition in testing (887) ``` ### 0.24.0 ``` This release introduces a new feature (disabled by default), supports new versions of integrations and improves our testing and tooling. Changes Improvements - [core] Enable requests integration by default (879) - [core] Fix logging with unset DATADOG_PATCH_MODULES (872) - [core] Use DEBUG log level for RateSampler initialization (861 -- thanks bmurphey) - [core] Guard against when there is no current call context (852) - [core] Collect run-time metrics (819) Integrations - [mysql] Remove mysql-connector 2.1 support (866) - [aiobotocore] Add support for versions up to 0.10.0 (865) Tooling - [dev/tooling] Update flake8 to 3.7 branch (856) - [dev/tooling] Add script to build wheels (853) - [ci] Use tox.ini checksum to update cache (850) Testing - [tests] Use a macro to persist result to workspace in CircleCI (880) - [tests] add psycopg2 2.8 support (878) - [aiohttp] Fix race condition in testing (877) - [docs] Remove confusing testing instructions from README (874) - [tests] Add support for aiohttp up to 3.5 (873) - Remove useless __future__ imports (871) - [testing] Remove nose usage (870) - [tests] Add support for pytest4 (869) - [tests] Add testing for Celery 4.3 (868) - [tests] Enable integration tests in docker-compose environment (863) - [tests] Do not test celery 4.2 with Kombu 4.4 (858) - [tests] Fix ddtrace sitecustomize negative test (857) - [tests] Use spotify cassandra image for tests (855) - [tests] Fix requests gevent tests (854) ``` ### 0.23.0 ``` With this release we are introducing a new configuration system across integrations to generate APM events for [Trace Search & Analytics](https://docs.datadoghq.com/tracing/visualization/search/). The other core changes are the beginnings of a new approach to address issues with tracer loads and improve debugging. Changes Improvements * Trace search client configuration (828) * [core] fix wrapt wrappers sources (836) * [core] Add Payload class helper (834) * [internal] Add rate limited logger (822) Bugs * Fix for broken celery tests (839 -- thanks JackWink) Read the [full changeset](https://github.com/DataDog/dd-trace-py/compare/v0.22.0...v0.23.0) and the [release milestone](https://github.com/DataDog/dd-trace-py/milestone/39?closed=1). ``` ### 0.22.0 ``` This release contains a few improvements for not marking a Celery task as an error if it is an expected and allowed exception, for propagating synthetics origin header, and to vendor our `six` and `wrapt` dependencies. Changes Improvements - [celery] Don't mark expected failures as errors (820 -- thanks sciyoshi) - [core] Propagate x-datadog-origin (821) - [core] vendor wrapt and six dependencies (755) Read the [full changeset](https://github.com/DataDog/dd-trace-py/compare/v0.21.1...v0.22.0) and the [release milestone](https://github.com/DataDog/dd-trace-py/milestone/36?closed=1). ``` ### 0.21.1 ``` This is a bug fix release that requires no changes to your code. Included in this release is a fix for some database cursors where we would force `Cursor.execute` and `Cursor.executemany` to return a cursor instead of the originally intended output. This caused an issue specifically with MySQL libraries which tried to return the row count and we were returning a cursor instead. Changes Bugs * [core] Patch logging earlier for ddtrace-run (832) * [dbapi2] Fix dbapi2 execute/executemany return value (830 ) * [core] Use case-insensitive comparison of header names during extract (826 -- thanks defanator) Read the [full changeset](https://github.com/DataDog/dd-trace-py/compare/v0.21.0...v0.21.1) and the [release milestone](https://github.com/DataDog/dd-trace-py/milestone/38?closed=1). ``` ### 0.21.0 ``` With this release we are moving distributed tracing settings to be enabled by default. This change means that you no longer need to explicitly enable distributed tracing for any integration. Changes Improvements - Enable distributed tracing by default (818) - aiohttp - bottle - flask - molten - pylons - pyramid - requests - tornado - [testing] Ensure consistent use of override_config and override_env (815) - [core] Break up ddtrace.settings into sub-modules (814) - [tests] Simplify elasticsearch CI test commands (813) - [core] Remove sending of service info (811) - [core] Add import hook module (769) Read the [full changeset](https://github.com/DataDog/dd-trace-py/compare/v0.20.4...v0.21) and the [release milestone](https://github.com/DataDog/dd-trace-py/milestone/35?closed=1). ``` ### 0.20.4 ``` This is a bug fix release, no code changes are required. In this release we have fixed a bug that caused some configuration values to not get updated when set. Changes Bug fixes * [bug] Integration config keys not being updated (816) Read the [full changeset](https://github.com/DataDog/dd-trace-py/compare/v0.20.3...v0.20.4) and the [release milestone](https://github.com/DataDog/dd-trace-py/milestone/37?closed=1). ``` ### 0.20.3 ``` This is a bug fix release that requires no changes. This release includes a fix for context propagation with `futures`. Under the right conditions we could incorrectly share a trace context between multiple `futures` threads which result in multiple traces being joined together in one. Changes Bug fixes * [core] Allow futures to skip creating new context if one doesn't exist (806) Read the [full changeset](https://github.com/DataDog/dd-trace-py/compare/v0.20.2...v0.20.3) and the [release milestone](https://github.com/DataDog/dd-trace-py/milestone/37?closed=1). ``` ### 0.20.2 ``` No changes are needed to upgrade to `0.20.2`. This big fix release includes changes to ensure we properly read the HTTP response body from the trace agent before we close the HTTP connection. Changes Bug fixes - [core] Call HTTPResponse.read() before HTTPConnection.close() (800) Improvements - [tests] limit grpcio version to >=1.8.0,<1.18.0 (802) - [tools] Add confirmation to 'rake pypi:release' task (791 ) Read the [full changeset](https://github.com/DataDog/dd-trace-py/compare/v0.20.1...v0.20.2) and the [release milestone](https://github.com/DataDog/dd-trace-py/milestone/36?closed=1). ``` ### 0.20.1 ``` No changes are needed to upgrade Changes Bug fixes [celery] Ensure `celery.run` span is closed when task is retried (787) Read the [full changeset](https://github.com/DataDog/dd-trace-py/compare/v0.20.0...v0.20.1) and the [release milestone](https://github.com/DataDog/dd-trace-py/milestone/36?closed=1). ``` ### 0.20.0 ``` We have added support for logs injection to the tracer. If you are already using `ddtrace-run`, the integration can be enabled with setting the environment variable `DD_LOGS_INJECTION=true`. The default behavior once logs injection is enabled is to have trace information inserted into all log entries. If you prefer more customization, you can manually instrument and configure a log formatter with the tracer information. Changes New Integrations * [mako] Add Mako integration (779 -- thanks wklken) Enhancements * [core] Tracer and logs integration (777) Read the [full changeset](https://github.com/DataDog/dd-trace-py/compare/v0.19.0...v0.20.0) and the [release milestone](https://github.com/DataDog/dd-trace-py/milestone/34?closed=1). ```Links
- PyPI: https://pypi.org/project/ddtrace - Changelog: https://pyup.io/changelogs/ddtrace/ - Repo: https://github.com/DataDog/dd-trace-py