Releases: DataDog/dd-trace-py
0.18.0
New Integrations
- [molten] Add molten support (#685)
Bug Fixes
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 and the release milestone.
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 and the release milestone.
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 and the release milestone.
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 and the release milestone.
0.15.0
New integrations
- Add rediscluster integration (#533, #637)
- Add Vertica Integration (#634)
Bug fixes
- [django] Fix minimum Django version for user.is_authenticated property (#626 -- thanks @browniebroke)
Improvements
- [celery] Add retry reason metadata to spans (#630)
- [core] Update config to allow configuration before patching (#650)
- [core] Add Tracer API to retrieve the root Span (#625)
- [core] Fixed
HTTPConnectionleaking (#542 -- thanks @mackeyja92) - [django] Allow Django cache to be seen as a different service. (#629)
- [gevent] Patch modules on first import (#632)
- [gevent] Add support for gevent.pool.Pool and gevent.pool.Group (#600)
- [redis] Removed unused tag (#627)
- [requests] Patch modules on first import (#632)
- [tests] Add Span.span_type tests (#633)
- [tests] Update the integrations libraries versions to the latest possible. (#607)
- [tests] CircleCI run tests in the new alpine-based test runner (#638)
- [tests] Add test cases for API._put (#640)
- [tests] Skip flaky TestWorkers.test_worker_multiple_traces test case (#643)
- [tests] Remove tests for not supported gevent 1.3 (#644)
Read the full changeset and the release milestone.
0.14.1
Bug fixes
- [opentracer] Activate span context on extract (#606, #608)
- [opentracer] Fix "does not provide the extra opentracing" (#611, #616)
Improvements
- [docs] Clarify debug mode (#610)
- [docs] Fix docstring for
Tracer.set_tags(#612 -- thanks @goodspark) - [docs] Add priority sampling to ddtrace-run usage (#621)
- [circleci] Imrpve python docs deployment strategy (#615)
- [tests] Refactor tox.ini file (#609)
- [tests] Improve performance of tests execution (#605)
Read the full changeset and the release milestone.
0.14.0
OpenTracing
In this release we are happy to introduce the beta for the long-awaited OpenTracing compatible API layer for ddtrace!
Support for opentracing>=2.0.0 is provided in this release. Namely, the following are supported:
start_span/start_active_spaninjectandextractfunctionalitybaggage, throughset_baggage_itemandget_baggage_item- compatible tags from the OpenTracing specification
- scope manager support
- seamless integration with the Datadog tracer when using
ddtrace-run
For setup information and usage see our docs for the Datadog OpenTracing tracer.
CI Improvements
Also included in this release are some optimizations to our CI which should get things running a bit quicker.
Thanks @labbati!
Read the full changeset and the release milestone.
0.13.1
Bug fixes
- [core] remove the root logger configuration within the library (#556)
Read the full changeset and the release milestone.
0.13.0
New integrations
pymemcacheintegration (#511)
Celery integration
Due to some limitations with our Celery integration, we changed our instrumentation to a signals based approach. We also started using import hooks to instrument Celery, so that enabling the instrumentation doesn't trigger a celery import.
- Signals implementation: #530
- Moving to import hooks: #534
- Resolved issues: #357, #493, #495, #495, #510, #370
Breaking changes
Using the signal based approach increase the stability of our instrumentation, but it limits what is currently traced. This is a list of changes that are considered breaking changes in the behavior and not in the API, so no changes are needed in your code unless you want a different behavior:
- By default all tasks will be traced if they use the Celery signals API, so tasks invoked with methods like
apply(),apply_async()anddelay()will be traced but tasks invoked withrun()will not be traced. patch_task()is deprecated; if it's used, all tasks will be instrumented
Bug fixes
- [core] check if bootstrap dir is in path before removal (#516 -- thanks @beezz!)
- [core] have hostname default to
DATADOG_TRACE_AGENT_HOSTNAMEenvironment variable if available (#509, #524 -- thanks @hfern!) - [core] add WSGI-style http headers support to HTTP propagator (#456, #522)
- [core] Enable buffering on
getresponse(#464, #527) - [core] configure the root logger (#536)
- [aiopg] set the
app_typeduring initialization (#492, #507) - [boto] default to
Noneif no region (#525, #526) - [flask] avoid double instrumentation when
TraceMiddlewareis used (#538) - [pymongo] fix multiple host kwargs (#535)
- [tornado] make settings object accessible during configuration (#499, #498 -- thanks @kave!)
Improvements
- [core/helpers] add a shortcut to retrieve Trace correlation identifiers (#488)
Read the full changeset and the release milestone.
0.12.1
Bugfixes
- [celery] add support for celery v1 tasks (old-style tasks) (#465, #423)
- [celery]
ddtrace-runbroke third-party script support; now it handles correctly theargvparams (#469, #423) - [celery] patch
TaskRegistryto support old-style task withddtrace-run(#484) - [django] update error handling if another middleware has handled the exception already (#418, #462)
- [django]
DatabaseWrapperloaded in right thread, after removingsetting_changedsignal from theDatadogSettings(#481, #435) - [django/celery] add
shared_taskdecorator wrapper to trace properly Celery tasks (#486, #451) - [django/docs] notes about Debug Mode, and debugging (#476 -- thanks @ndkv!)
- [gevent] pass
sampling_priorityfield when Distributed Tracing is enabled (#457) - [mysqlb] add missing services info when they're flushed (#468, #428)
- [psycopg2] properly patch the driver when
quote_identtyping is used (#477, #474, #383) - [pylons] ensure the middleware code is Python 3 compatible to avoid crashes on import (#475, #472)
- [requests] add missing services info when they're flushed (#471, #428)
Read the full changeset and the release milestone.