Skip to content

1.20.0

Compare
Choose a tag to compare
@github-actions github-actions released this 05 Feb 13:53
· 2765 commits to master since this release
e631bda

Highlights

Dynamic sampling for Alpha Allocations and Heap Profiling

Allocation and heap profiling were introduced as experimental/alpha features in ddtrace 1.19.0 to help you optimize your application to allocate and use less memory, as well as to track down memory leaks.

In 1.20.0, we've introduced a new dynamic sampler that tunes sampling parameters to keep sampling overhead under control. Target overhead is governed by the overhead_target_percentage setting. This sampling mechanism replaces the one included in release 1.19.0 which relied on fixed sampling rates and thus required manual tuning to adapt to the specificities of your application.

As a reminder, you can enable these memory profiling features:

  • Using the environment variables DD_PROFILING_EXPERIMENTAL_ALLOCATION_ENABLED=true,
    DD_PROFILING_EXPERIMENTAL_HEAP_ENABLED=true and DD_PROFILING_EXPERIMENTAL_HEAP_SIZE_ENABLED=true
  • Or via code by adding to your Datadog.configure block:
Datadog.configure do |c|
  # ... existing configuration ...
  c.profiling.advanced.experimental_allocation_enabled = true
  c.profiling.advanced.experimental_heap_enabled = true
  c.profiling.advanced.experimental_heap_size_enabled = true
end
Known issues and limitations:
  • This feature only works on Ruby 2.7 and above.
  • Ruby versions 3.2.0, 3.2.1 and 3.2.2 are not supported due to a Ruby VM bug. The bug has been fixed on Ruby 3.2.3, released on January 18.
  • This feature is currently incompatible with applications using Ractors due to a Ruby VM bug.
  • The three options above are not fully independent; experimental_heap_size_enabled requires experimental_heap_enabled,
    and in turn experimental_heap_enabled requires experimental_allocation_enabled.

We're very interested in feedback on how this feature works for you. Give it a try, let us know how it's working!

Test visibility

Test visibility in Ruby is feature complete and generally available now. This release includes:

  • Test sessions and suites are reported by default
  • Source code integration
  • CODEOWNERS support
  • Parametrized tests in Cucumber

See full release notes from datadog-ci-rb for more information.

Changelog

Added

  • Tracing: Add Trilogy instrumentation (#3274)
  • Rack: Add remote configuration boot tags (#3315)
  • Faraday: Add on_error option (#3431)
  • Profiling: Add dynamic allocation sampling (#3395)

Changed

  • Bump datadog-ci dependency to 0.7.0 (#3408)
  • Improve performance of gathering ClassCount metric (#3386)

Fixed

  • OpenTelemetry: Fix internal loading (#3400)
  • Core: Fix logger deadlock (#3426)
  • Rack: Fix missing active trace (#3420)
  • Redis: Fix instance configuration (#3278)

Read the full changeset and the release milestone.