Upgrading to 0.38.0
Integrations
Celery
- Support for distributed tracing was added in #1194. It is default disabled but is easily enabled via
DD_CELERY_DISTRIBUTED_TRACING=true
or via the config APIddtrace.config.celery['distributed_tracing'] = True
. Thanks @thieman! - Analyzed span configuration was added to easily configure Celery spans to be analyzed. This can be done via the environment variable
DD_CELERY_ANALYTICS_ENABLED=true
or with the config APIddtrace.config.celery['analytics_enabled'] = True
.
Django
- A config option was added to allow enabling/disabling instrumenting middleware. It can be set with the environment variable
DD_DJANGO_INSTRUMENT_MIDDLEWARE=true|false
or via the config APIddtrace.config.django['instrument_middleware'] = False # default is True
.
Core
- Runtime ID tag support for traces and profiles. This will allow us to correlate traces and profiles generated by applications.
OpenTracing
- Support for
active_span()
was added to our OpenTracing tracer.
Profiling
- Storing of span id in profiling events which will enable linking between a trace and a profile in the product.
Tracer
DD_TAGS
environment variable added to replaceDD_TRACE_GLOBAL_TAGS
.
Changes
New features
- opentracer: implement active_span (#1395)
- django: add config for instrumenting middleware (#1384)
- celery: Add analyzed span configuration option (#1383)
- Add runtime id tag support for traces & profiles (#1379)
- profiling: retry on upload error (#1376)
- tracer: Add DD_TAGS environment variable support (#1315)
- celery: Add distributed tracing (#1194 -- thanks @thieman)
- profiling: Store span ids in profiling events (#1043)
Improvements
- monkey: add better error messages (#1430)
- Make hooks settings generic (#1428)
- internal: Change trace too large message to debug (#1403 -- thanks @ZStriker19)
- internal: Ensure queue is at or over max size before dropping (#1399)
- performance: improve span id generation (#1378)
Bug fixes
- hooks: use log.error to log hook exceptions (#1436)
- writer: raise RuntimeError("threads can only be started once") (#1425 -- thanks @YasuoSasaki)
- settings: pass the
memodict
argument to subcall to deepcopy (#1401) - profiling: correct the scheduler sleep time based on exporter time (#1386)
- integration config: copy and deepcopy implementations (#1381)
- utils: do not expose deepmerge function (#1375)
Documentation
- Updated to pypi advance usage docs (#1402)