Changelog
### 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)
```
### 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).
```
### 0.19.0
```
With `0.19.0` we have decided to disable the tracing of `dbapi2` `fetchone()`/`fetchmany()`/`fetchall()` methods by default.
This change effects all integrations which rely on the `dbapi2` API, including `psycopg2`, `mysql`, `mysqldb`, `pymysql`, and `sqlite3`.
We have introduced this change to reduce the noise added to traces from having these methods (mostly `fetchone()`) traced by default.
With `fetchone()` enabled the traces received can get very large for large result sets, the resulting traces either become difficult to read or become too large causing issues when flushing to the trace agent, potentially causing traces to be dropped.
To re-enable the tracing of these methods you can either configure via the environment variable `DD_DBAPI2_TRACE_FETCH_METHODS=true` or manually via:
python
from ddtrace import config
config.dbapi2.trace_fetch_methods = True
Changes
Bugs
[dbapi2] disable fetchone/fetchmany/fetchall tracing by default (780)
[opentracing] Fixing context provider imports for scope manager (771 -- thanks Maximilien-R)
Enhancements
[tests] test python setup.py sdist and twine check on build (782)
[core] Add API to configure Trace Search (781)
[core] Enable priority sampling by default (774)
Read the [full changeset](https://github.com/DataDog/dd-trace-py/compare/v0.18.0...v0.19.0) and the [release milestone](https://github.com/DataDog/dd-trace-py/milestone/32?closed=1).
```
### 0.18.0
```
New Integrations
* [molten] Add molten support (685)
Bug Fixes
* [aws] Blacklist arguments stored as tags (761)
* [psycopg2] Fix composable query tracing (736)
Improvements
* [aiohttp] Add HTTP method to the root span resource (652 -- thanks k4nar)
* [aws]Flatten span tag names (768)
* [opentracer] Set global tags (764)
* [core] add six and replace custom compat functions (751)
* [config] make IntegrationConfig an AttrDict (742)
* [tests] remove unused monkey.py test file (760)
* [tests] fix linting in test files (752)
* [psycopg2] fix linting issues (749)
* [tests] have most tests use pytest test runner (748)
* [tests] Provide default implementation of patch test methods (747)
* [tests] run flake8 on all test files (745)
* [tests] Add patch mixin and base test case (721)
* [tests] Add Subprocess TestCase (720)
Read the [full changeset](https://github.com/DataDog/dd-trace-py/compare/v0.17.1...v0.18.0) and the [release milestone](https://github.com/DataDog/dd-trace-py/milestone/30?closed=1).
```
### 0.17.1
```
This release includes the removal of service sending, this should resolve many of the 400s that are being returned from the Agent resulting in an unfriendly `ERROR` message and giving the impression that the tracer is failing. (757)
Improvements
- [core] Make writing services a no-op (735)
- [tests] upgrade flake8 to 3.5.0 (743)
- remove flake8 ignores and fix issues (744)
Read the [full changeset](https://github.com/DataDog/dd-trace-py/compare/v0.17.0...v0.17.1) and the [release milestone](https://github.com/DataDog/dd-trace-py/milestone/31?closed=1).
```
### 0.17.0
```
New features
- [redis] add support for redis 3.0.0 (716)
- [core] Allow DD_AGENT_HOST and DD_TRACE_AGENT_PORT env variables (708)
- [core] Add global tracer tags (702)
- [core] Trace http headers (647)
Improvements
- [docs] add Flask configuration documentation (734)
- Add long_description to setup.py (728)
- [tests] pin version of redis-py-cluster for 'tox -e wait' (725)
- [requests] Add another split_by_domain test (713)
- [docs] Add kombu references (711)
- [ci] Use small circleci resource class for all jobs (710)
- [requests] patch Session.send instead of Session.request (707)
- [ci] reorganize CircleCI workflows (705)
- [elasticsearch] add support for elasticsearch{1,2,5} packages (701)
- [tests] add base test case classes and rewrite tracer tests (689)
- [dbapi] Trace db fetch and session methods (664)
Bugfixes
- [elasticsearch] add alias for default _perform_request (737)
- [tests] Pin pytest to 3.x.x and redis to 2.10.x for rediscluster (727)
- [django] Use a set instead of list for cache_backends to avoid duplicates (726 -- thanks wenbochang)
- [tests] fix broken redis check (722)
- [docs] Fix broken flask link (712)
- [mongodb] Fix pymongo query metadata (706)
Read the [full changeset](https://github.com/DataDog/dd-trace-py/compare/v0.16.0...v0.17.0) and the [release milestone](https://github.com/DataDog/dd-trace-py/milestone/29?closed=1).
```
### 0.16.0
```
New Integrations
* [jinja2] Add jinja2 integration (649 -- thanks mgu)
* [kombu] add Kombu integration (515 -- thanks tebriel)
* [grpc] Add grpc client support. (641)
* [gevent] Support gevent 1.3 (663)
* [flask] rewrite Flask integration (667)
Bug Fixes
* [mysqldb] Fix mysqldb monkey patch (623 -- thanks benjamin-lim)
* [requests] exclude basic auth from service name (646 -- thanks snopoke)
Improvements
* [core] Add IntegrationConfig helper class (684)
* [core] add support for integration span hooks (679)
* [httplib, requests] Sanitize urls in span metadata (688)
* [tests] ensure we are running tests.contrib.test_utils (678)
* [celery] [bottle] Add span type information for celery and bottle. (636)
* [ci] Reorganize autopatch test calls (670)
* [core] initial support for partial flushes (668)
* [django] Remove query from django db span's tag sql.query (659)
* [tests] Make CI faster by disabling dist and install in autopatching tests (654)
* [core] Trace http headers (647)
* [django] Infer span resource name when internal error handler is used (645)
* [elasticsearch] Make constant organization consistent with other integrations (628)
Read the [full changeset](https://github.com/DataDog/dd-trace-py/compare/v0.15.0...v0.16.0) and the [release milestone](https://github.com/DataDog/dd-trace-py/milestone/28?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.15.0 to 0.21.1.
Changelog
### 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) ``` ### 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). ``` ### 0.19.0 ``` With `0.19.0` we have decided to disable the tracing of `dbapi2` `fetchone()`/`fetchmany()`/`fetchall()` methods by default. This change effects all integrations which rely on the `dbapi2` API, including `psycopg2`, `mysql`, `mysqldb`, `pymysql`, and `sqlite3`. We have introduced this change to reduce the noise added to traces from having these methods (mostly `fetchone()`) traced by default. With `fetchone()` enabled the traces received can get very large for large result sets, the resulting traces either become difficult to read or become too large causing issues when flushing to the trace agent, potentially causing traces to be dropped. To re-enable the tracing of these methods you can either configure via the environment variable `DD_DBAPI2_TRACE_FETCH_METHODS=true` or manually via: python from ddtrace import config config.dbapi2.trace_fetch_methods = True Changes Bugs [dbapi2] disable fetchone/fetchmany/fetchall tracing by default (780) [opentracing] Fixing context provider imports for scope manager (771 -- thanks Maximilien-R) Enhancements [tests] test python setup.py sdist and twine check on build (782) [core] Add API to configure Trace Search (781) [core] Enable priority sampling by default (774) Read the [full changeset](https://github.com/DataDog/dd-trace-py/compare/v0.18.0...v0.19.0) and the [release milestone](https://github.com/DataDog/dd-trace-py/milestone/32?closed=1). ``` ### 0.18.0 ``` New Integrations * [molten] Add molten support (685) Bug Fixes * [aws] Blacklist arguments stored as tags (761) * [psycopg2] Fix composable query tracing (736) Improvements * [aiohttp] Add HTTP method to the root span resource (652 -- thanks k4nar) * [aws]Flatten span tag names (768) * [opentracer] Set global tags (764) * [core] add six and replace custom compat functions (751) * [config] make IntegrationConfig an AttrDict (742) * [tests] remove unused monkey.py test file (760) * [tests] fix linting in test files (752) * [psycopg2] fix linting issues (749) * [tests] have most tests use pytest test runner (748) * [tests] Provide default implementation of patch test methods (747) * [tests] run flake8 on all test files (745) * [tests] Add patch mixin and base test case (721) * [tests] Add Subprocess TestCase (720) Read the [full changeset](https://github.com/DataDog/dd-trace-py/compare/v0.17.1...v0.18.0) and the [release milestone](https://github.com/DataDog/dd-trace-py/milestone/30?closed=1). ``` ### 0.17.1 ``` This release includes the removal of service sending, this should resolve many of the 400s that are being returned from the Agent resulting in an unfriendly `ERROR` message and giving the impression that the tracer is failing. (757) Improvements - [core] Make writing services a no-op (735) - [tests] upgrade flake8 to 3.5.0 (743) - remove flake8 ignores and fix issues (744) Read the [full changeset](https://github.com/DataDog/dd-trace-py/compare/v0.17.0...v0.17.1) and the [release milestone](https://github.com/DataDog/dd-trace-py/milestone/31?closed=1). ``` ### 0.17.0 ``` New features - [redis] add support for redis 3.0.0 (716) - [core] Allow DD_AGENT_HOST and DD_TRACE_AGENT_PORT env variables (708) - [core] Add global tracer tags (702) - [core] Trace http headers (647) Improvements - [docs] add Flask configuration documentation (734) - Add long_description to setup.py (728) - [tests] pin version of redis-py-cluster for 'tox -e wait' (725) - [requests] Add another split_by_domain test (713) - [docs] Add kombu references (711) - [ci] Use small circleci resource class for all jobs (710) - [requests] patch Session.send instead of Session.request (707) - [ci] reorganize CircleCI workflows (705) - [elasticsearch] add support for elasticsearch{1,2,5} packages (701) - [tests] add base test case classes and rewrite tracer tests (689) - [dbapi] Trace db fetch and session methods (664) Bugfixes - [elasticsearch] add alias for default _perform_request (737) - [tests] Pin pytest to 3.x.x and redis to 2.10.x for rediscluster (727) - [django] Use a set instead of list for cache_backends to avoid duplicates (726 -- thanks wenbochang) - [tests] fix broken redis check (722) - [docs] Fix broken flask link (712) - [mongodb] Fix pymongo query metadata (706) Read the [full changeset](https://github.com/DataDog/dd-trace-py/compare/v0.16.0...v0.17.0) and the [release milestone](https://github.com/DataDog/dd-trace-py/milestone/29?closed=1). ``` ### 0.16.0 ``` New Integrations * [jinja2] Add jinja2 integration (649 -- thanks mgu) * [kombu] add Kombu integration (515 -- thanks tebriel) * [grpc] Add grpc client support. (641) * [gevent] Support gevent 1.3 (663) * [flask] rewrite Flask integration (667) Bug Fixes * [mysqldb] Fix mysqldb monkey patch (623 -- thanks benjamin-lim) * [requests] exclude basic auth from service name (646 -- thanks snopoke) Improvements * [core] Add IntegrationConfig helper class (684) * [core] add support for integration span hooks (679) * [httplib, requests] Sanitize urls in span metadata (688) * [tests] ensure we are running tests.contrib.test_utils (678) * [celery] [bottle] Add span type information for celery and bottle. (636) * [ci] Reorganize autopatch test calls (670) * [core] initial support for partial flushes (668) * [django] Remove query from django db span's tag sql.query (659) * [tests] Make CI faster by disabling dist and install in autopatching tests (654) * [core] Trace http headers (647) * [django] Infer span resource name when internal error handler is used (645) * [elasticsearch] Make constant organization consistent with other integrations (628) Read the [full changeset](https://github.com/DataDog/dd-trace-py/compare/v0.15.0...v0.16.0) and the [release milestone](https://github.com/DataDog/dd-trace-py/milestone/28?closed=1). ```Links
- PyPI: https://pypi.org/project/ddtrace - Changelog: https://pyup.io/changelogs/ddtrace/ - Repo: https://github.com/DataDog/dd-trace-py