Skip to content

Releases: DataDog/dd-trace-py

0.35.2

26 Aug 02:03
ca8d9cc

Choose a tag to compare

0.35.2

This patch release introduces a fix for an issue introduced by patching classes in the MRO of a Django View class (#1625).

0.35.1

26 Aug 01:31
ca8d9cc

Choose a tag to compare

0.35.1

This patch release reintroduces wrapt for patching Django view methods. (#1622)

0.34.2

26 Aug 01:22

Choose a tag to compare

0.34.2

This patch release introduces a fix for an issue introduced by patching classes in the MRO of a Django View class (#1625).

0.38.3

25 Aug 18:48

Choose a tag to compare

0.38.3

This patch release reintroduces wrapt for patching Django view methods. (#1622)

Changeset: v0.38.2...v0.38.3

0.37.2

25 Aug 18:59

Choose a tag to compare

0.37.2

This patch release reintroduces wrapt for patching Django view methods. (#1622)

Changeset: v0.37.1...v0.37.2

0.36.2

25 Aug 23:07

Choose a tag to compare

0.36.2

This patch release reintroduces wrapt for patching Django view methods. (#1622)

Changeset: v0.36.1...v0.36.2

0.41.0

07 Aug 20:09
1c153a5

Choose a tag to compare

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

16 Jul 15:15

Choose a tag to compare

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. The DD_GRPC_SERVICE environment variable can also be used.

redis

  • Use ddtrace.config.redis["service"] to set the service name for the redis integration. The environment variable DD_REDIS_SERVICE can also be used.

httplib

  • To enable distributed tracing, use ddtrace.config.httplib["distributed_tracing"]. By default, distributed tracing for httplib is 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

19 Jun 20:34
4a150d6

Choose a tag to compare

Deprecations

  • The decode() method on our encoders located in ddtrace.encoders is 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.config API 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 None RpcMethodHandlers

Tracer

  • core: deprecate encoder decode()

Profiling

  • Agent upload by default
  • Now included by default with the tracing package
  • Support for the DD_ENV and DD_VERSION environment 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

v0.38.2...v0.39.0

https://github.com/DataDog/dd-trace-py/milestone/57?closed=1

0.38.2

11 Jun 02:10
3a8c66f

Choose a tag to compare

This patch release disables span linkage by default in the profiler which was causing some threading lock up issues in gevent. See #1488 and #1485 for the details.