1.20.0
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
andDD_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
requiresexperimental_heap_enabled
,
and in turnexperimental_heap_enabled
requiresexperimental_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.