Releases: DataDog/dd-trace-py
0.50.0rc3
Third 0.50 prerelease including some more context management work and small performance improvements.
0.50.0rc2
Second 0.50 prerelease adding additional metadata to CI test spans.
0.49.3
Release Notes
0.49.3
Bug Fixes
- django: fix a bug where multiple database backends would not be instrumented.
- django: fix a bug when postgres query is composable sql object.
0.50.0rc1
0.50 prerelease featuring improvements to context management
0.49.2
Release Notes
v0.49.2
Bug Fixes
- Fix double patching of
pymongoclient topology.
0.49.1
Release Notes
v0.49.1
New Features
- Add support for Flask 2
0.49.0
Release Notes
v0.49.0
Prelude
Several deprecations have been made to Context as we prepare to move active span management out of this class.
New Features
- The futures integration is now enabled by default.
- requests: add global config support. This enables the requests service name to be configured with
ddtrace.config.requests['service']or theDD_REQUESTS_SERVICEenvironment variable.
Upgrade Notes
- Support for aiohttp previous to 2.0 has been removed.
- Support for deprecated
DD_PROFILING_API_URLenvironment variable has been removed. UseDD_SITEinstead. - Support for deprecated
DD_PROFILING_API_KEYenvironment variable has been removed. UseDD_API_KEYinstead. - Profiling support for agentless mode must now be explicitly enabled.
- The ddtrace pytest plugin can now label spans from test cases marked xfail with the tag "pytest.result" and the reason for being marked xfail under the tag "pytest.xfail.reason".
- requests: spans will no longer inherit the service name from the parent.
- The return value of
Span.pprint()has been changed to a single line in the tracer debug logs rather than the previous custom multiline format. - Spans are now processed per tracer instance. Formerly spans were stored per-Context which could be shared between tracer instances. Note that context management is not affected. Tracers will still share active spans.
- Spans from asynchronous executions (asyncio, gevent, tornado) will now be processed and flushed together. Formerly the spans were handled per-task.
tracer.write()will no longer have filters applied to the spans passed to it.- The function
ddtrace.utils.merge_dictshas been removed.
Deprecation Notes
-
Context.cloneis deprecated. It will not be required in 0.50. -
Context.add_spanis deprecated and will be removed in 0.50. -
Context.add_spanis deprecated and will be removed in 0.50. -
Context.close_spanis deprecated and will be removed in 0.50. -
Context.get_current_spanis deprecated and will be removed in 0.50 please useTracer.current_spaninstead. -
Context.get_current_root_spanis deprecated and will be removed in 0.50 please useTracer.current_root_spaninstead. -
Deprecate the configuration of the analytics through the generic dbapi2 configuration. This should now be configured via integration configurations, for example:
# Before export DD_TRACE_DBAPI2_ANALYTICS_ENABLED=1 # After export DD_TRACE_SQLITE3_ANALYTICS_ENABLED=1 -
ddtrace.compathas been deprecated and will be removed from the public API in ddtrace version 1.0.0. -
Deprecate
ddtrace.config.dbapi2as default forTracedCursorandTracedConnectionas well asDD_DBAPI2_TRACE_FETCH_METHODS. UseIntegrationConfigandDD_<INTEGRATION>_TRACE_FETCH_METHODSspecific to each dbapi-compliant library. For example:# Before config.dbapi2.trace_fetch_methods = True # After config.psycopg2.trace_fetch_methods = True -
The use of
ddtrace.encodinghas been deprecated and will be removed in version 1.0.0. -
The
ddtrace.httpmodule has been deprecated and will be removed in version 1.0.0, with theddtrace.http.headersmodule now merged intoddtrace.trace_utils. -
The
collect_metricsargument of thetracer.configuremethod has been deprecated. Runtime metrics should be enabled only via theDD_RUNTIME_METRICS_ENABLEDenvironment variable.
Bug Fixes
- Fix broken builds for Python 2.7 on windows where
<stdint.h>was not available. This change also ensures we build and publishcp27-winwheels. - CGroup file parsing was fixed to correctly parse container ID with preceding characters.
- grpc: handle None values for span tags.
- grpc: handle no package in fully qualified method
- grpc: Add done callback in streaming response to avoid unfinished spans if a StopIteration is never raised, as is found in the Google Cloud libraries.
- grpc: handle IPv6 addresses and no port in target.
- Fix DD_LOGS_INJECTION incompatibility when using a
logging.StrFormatStyle(logging.Formatter(fmt, style="{")) log formatter. - Fixed a bug that prevented the right integration name to be used when trying to patch a module on import that is already loaded.
- Fix
urllib3patching not properly activating the integration. - gRPC client spans are now marked as measured by default.
- Fixes issue of unfinished spans when response is not a grpc.Future but has the same interface, as is the case with the base future class in google-api-core.
- In certain circumstances, the profiles generated in a uWSGI application could have been empty. This is now fixed and the profiler records correctly the generated events.
- The default agent timeout for profiling has been restored from 2 to 10 seconds to avoid too many profiles from being dropped.
- Fix issue with missing traces when using
pymemcache.client.hash.HashClient. - Added missing pymongo integration configuration, which allows overriding the service name for all the emitted spans.
Other Notes
- Added environment variable
DD_BOTTLE_DISTRIBUTED_TRACINGto enable distributed tracing for bottle. - The
attrslibrary has been unvendored and is now required as a normal Python dependency with a minimum version requirement of 19.2.0. - The six library has been removed from vendor and the system-wide version is being used. It requires version 1.12.0 or later.
- Documentation on how to use Gunicorn with the
geventworker class has been added. - Added environment variable
DD_FALCON_DISTRIBUTED_TRACINGto enable distributed tracing for falcon. - When extracting context information from HTTP headers, a new context is created when the trace ID is either 0 or not available within the headers.
- Added environment variable
DD_PYLONS_DISTRIBUTED_TRACINGto enable distributed tracing for pylons. - Update
pymemcachetest suite to test latest versions. - Added
config.pyramid.distributed_tracingsetting to integration config for pyramid. - Removed
ddtrace.ext.AppTypesand its usages in the tracer library. - The
ddtrace.payloadsubmodule has been removed. - Added environment variable
DD_TORNADO_DISTRIBUTED_TRACINGto enable distributed tracing for tornado.
0.49.0rc2
Fix context reentry deadlock (#2461) (#2462) * add regression test * Make context lock reentrant * Parametrize test, add timeout * Fix test string interpolation * Don't test output * Make wait python compatible (cherry picked from commit 37945ffbce8480fbd93d7641f9da7d0db3b0f6b7) Co-authored-by: Kyle Verhoog <[email protected]>
0.49.0rc1
v0.49.0rc1 ci: add setup.py to checksum for tox cache (#2451)
0.48.4
Release Notes
v0.48.4
Bug Fixes
- grpc: handle None values for span tags.
- grpc: Add done callback in streaming response to avoid unfinished spans if a StopIteration is never raised, as is found in the Google Cloud libraries.