Releases: DataDog/dd-trace-py
0.35.2
0.35.1
0.34.2
0.38.3
0.38.3
This patch release reintroduces wrapt for patching Django view methods. (#1622)
Changeset: v0.38.2...v0.38.3
0.37.2
0.37.2
This patch release reintroduces wrapt for patching Django view methods. (#1622)
Changeset: v0.37.1...v0.37.2
0.36.2
0.36.2
This patch release reintroduces wrapt for patching Django view methods. (#1622)
Changeset: v0.36.1...v0.36.2
0.41.0
Upgrading to 0.41.0
This release includes new features, performance improvements (including a custom msgpack encoder) and profiling and several bug fixes. With this release we will be building and publishing wheels for macOS and Windows.
Integrations
asgi
- Add ASGI integration! (#1567)
django
- Add option for using legacy resource format (#1551 -- thanks @tredzko, @jheld). The previous method used for the resource name was preferred by a number of users so we've added it back. See #1551 for details.
grpc
- Fix GRPC Channel Pin (#1582 -- thanks @munagekar). This will allow users to actually use the service name overriding functionality for grpc channels.
Profiler
- Reduce the default amount of sampling for memory/lock to 2% (#1586)
- Fix empty filenames (#1585)
- Fix race condition with periodic thread (#1569)
- Lock Recorder on reset (#1560)
Tracer
- Disable import hooks (#1563). These were causing some strange issues so we're disabling them until we sort out what's going on.
- Make environment variables consistent with other languages (#1575)
- Set tags from DD_TAGS (#1561).
- Add startup logging (#1548). These logs will help customers with setting up tracing. The feature can be opted out of by setting the environment variable
DD_TRACE_STARTUP_LOGS=0. - Add msgpack encoder (#1491). A large portion of CPU time spent is encoding. We've introduced a custom encoder to begin making optimizations.
Full changeset
Read the full changeset.
0.40.0
Upgrading to 0.40.0
This release includes performance improvements in the core library, updates profiling, and configuration changes to several integrations. This release also adds support for installing on Windows.
grpc
- Use
ddtrace.config.grpc["service_name"]to set service name reported by default for gRPC client instances. TheDD_GRPC_SERVICEenvironment variable can also be used.
redis
- Use
ddtrace.config.redis["service"]to set the service name for theredisintegration. The environment variableDD_REDIS_SERVICEcan also be used.
httplib
- To enable distributed tracing, use
ddtrace.config.httplib["distributed_tracing"]. By default, distributed tracing forhttplibis disabled.
Changes
Improvements
- fix(monkey): use lock on manual patched module add (#1479 -- thanks @uniq10)
- core: re-enable custom rng (#1474)
- core: rewrite queue (#1534)
- pin: make service optional (#1529)
- feat(ddtrace-run): allow to enable profiling (#1537)
- feat(profiling): enable flush on exit by default for Profiler (#1524)
- fix(grpc): compute service name dynamically (#1530)
- feat(redis): add global service configuration (#1515)
- feat(httplib): support distributed tracing (#1522 -- thanks @jirikuncar)
- refactor(profiling): hide Profiler._schedulers (#1523)
- feat(profiling): set Datadog-Container-Id when uploading profiles (#1520)
- feat(profiling/http): emit log message when server returns 400 (#1477)
- feat(profiling): validate API key format (#1459)
Bug fixes
- fix(profiling): fix memory leak in Python 2 stack collector (#1568)
- fix(profiling): disable exception profiling on Windows (#1538)
- fix(profiling/stack): fix GIL switching (#1475)
Full changeset
Read the full changeset.
0.39.0
Deprecations
- The
decode()method on our encoders located inddtrace.encodersis scheduled to be removed in 0.40.
Integrations
Django
- Add headers tracing configuration. This will enable headers on requests to be attached as tags on request spans. This can be done by using the
ddtrace.configAPI like so:config.django.http.trace_headers(["my-header-i-want-to-trace"]). Thanks to @JoseKilo for contributing this feature! - Fix for a bug where we didn't handle all cases for a template name. Thanks @sibsibsib!
Elasticsearch
- Fix for a bug that causes the tracer to crash if params is
None.
grpc
- Fix handling
NoneRpcMethodHandlers
Tracer
- core: deprecate encoder decode()
Profiling
- Agent upload by default
- Now included by default with the tracing package
- Support for the
DD_ENVandDD_VERSIONenvironment variable configuration. - A bunch of gevent fixes. See below for the details.
OpenTracing
- Support for tracer interleaving between the Datadog tracer (used in integrations) and the OpenTracing tracer provided in the library.
Full Change set
Deprecations
- core: deprecate encoder decode() (#1496)
Features
feat(profiling):
- docs: add changelog from github (#1503)
- feat(profiling): enable agent upload by default #1494
- feat(profiling): disable trace tracking in tracer by default (#1488)
- feat(profiling): allow to pass version to Profiler (#1478)
- feat(profiling): allow to pass env to Profiler (#1473)
- feat(profiling): install the profiling extra by default (#1463)
- feat(profiling): raise an error on start if endpoint is empty (#1460)
- feat(profiling): validate API key format (#1459)
- feat(profiling): track gevent greenlets (#1456)
- feat(profiling/pprof): export trace id as stack labels (#1454)
- feat(django): Implement headers tracing (#1443 -- thanks @JoseKilo)
- feat(profiling): allow to pass service_name to the Profiler object (#1440)
- feat(opentracing): support for tracer interleaving (#1394)
Fixes
- fix(profiling): multi-threading/gevent issues with ThreadLinkSpan (#1485)
- refactor(profiling/recorder): remove filtering mechanism (#1482)
- fix(profiling/stack): lock _WeakSet in ThreadSpanLinks (#1469)
- span: changed finished attribute implementation (#1467)
- fix(grpc): RpcMethodHandler can be None (#1465)
- fix(elasticsearch): ensure params is a dict before urlencoding (#1449, #1451)
- fix(profiling): identify Python main thread properly with gevent (#1445)
- fix(django) handle different template view name types (#1441 -- thanks @sibsibsib)
- fix(profiling/periodic): make sure that a service cannot be started twice (#1439)
- fix(profiling): use gevent.monkey rather than private _threading module (#1438)
- fix(profiling): fix negative CPU time (#1437)
- fix(profiling/periodic): PERIODIC_THREAD_IDS race condition (#1435
https://github.com/DataDog/dd-trace-py/milestone/57?closed=1