New integrations
- Add support for asynchronous Python. This is a major improvement that adds support for
asyncio
,aiohttp
andgevent
(#161, docs: asyncio - aiohttp - gevent) - Add Celery integration (#135, #196, docs)
New features
- Add explicit support for Python 3.5, and 3.6 (#215, see supported versions)
- print the list of unfinished spans if the
debug_logging
is activated; useful in synchronous environments to detect unfinished/unreported traces (#210)
Bugfixes
- [mysql]
mysql
integration is patched when usingpatch()
orpatch_all()
(#178) - [django] set global tracer tags from Django
DATADOG_TRACE
setting (#159) - [bottle] wrong
tracer
reference whenset_service_info
is invoked (#199)
Breaking changes
- Default port
7777
has been replaced with the new8126
available from Datadog Agent 5.11.0 and above (#212) - Removed the
ThreadLocalSpanBuffer
. It has been fully replaced by theContext
propagation (#211)
Migrate from 0.5.x to 0.6.0
- Datadog Agent 5.11.0 or above is required.
- If you're using the
ThreadLocalSpanBuffer
manually, you need to use the Context class in your logic so that it is compliant with theContext
propagation. Check the Advanced usage section.
Advanced usage
This is a list of new features that may be used for manual instrumentation when you're using a library or a framework that is not currently supported:
- Use
Context
propagation instead of a global buffer. This plays well with asynchronous programming where a context switching may happen while handling different logical execution flows (#172) tracer.trace()
handles automatically theContext
propagation and remains the preferable API- Add
tracer.get_call_context()
to retrieve the currentContext
instance that is holding the entire trace for this logical execution (docs) - Add
start_span
as a way to manually create spans, while handling the Context propagation (docs)
Read the full changeset.