-
Notifications
You must be signed in to change notification settings - Fork 398
DEBUG-3558 DI: chunk snapshot payloads #5086
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
Thank you for updating Change log entry section 👏 Visited at: 2025-11-24 18:05:19 UTC |
BenchmarksBenchmark execution time: 2025-12-01 21:28:30 Comparing candidate commit 5390e30 in PR branch Found 1 performance improvements and 1 performance regressions! Performance is the same for 42 metrics, 2 unstable metrics. scenario:profiling - Allocations ()
scenario:tracing - Propagation - Trace Context
|
Typing analysisNote: Ignored files are excluded from the next sections. Untyped methodsThis PR introduces 4 untyped methods, and clears 3 untyped methods. It decreases the percentage of typed methods from 54.94% to 54.93% (-0.01%). Untyped methods (+4-3)❌ Introduced:If you believe a method or an attribute is rightfully untyped or partially typed, you can add |
|
✅ Tests 🎉 All green!❄️ No new flaky tests detected 🎯 Code Coverage 🔗 Commit SHA: 5390e30 | Docs | Datadog PR Page | Was this helpful? Give us feedback! |
Co-authored-by: Sergey Fedorov <[email protected]>
|
I got the limits wrong in the initial implementation of this PR, this has now been corrected. |
* master: Transports: DRY HTTP client code (#5095) DI: extract instance_double_agent_settings_with_stubs to DRY tests (#5087) [PROF-13115] Fix profiler ractor specs failing on Ruby 4 [PROF-13115] Bootstrap installing dependencies on Ruby 4.0.0-preview2 Clarify support for `rb_obj_info` and why it's OK to not have it Tweak pending to not apply to all Ruby preview versions Do not try to use `rb_obj_info` on Ruby 4.0 Adjust stack collector spec to account for changed Ruby 4 behavior [PROF-13115] Disable heap profiling on Ruby 4 preview due to incompatibility Stub sampling in integration tests Rewrite security response tests Bump the gh-actions-packages group across 3 directories with 13 updates
Strech
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Have a tiny suggestion over performance of the filter_map
Co-authored-by: Sergey Fedorov <[email protected]>
This reverts commit ca985cf.
Strech
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I've left the suggestion about the filter_map path when it's not lazy enumerator
This reverts commit 228785a.
* master: (523 commits) DI: relax upper bound for reported long method duration (#5113) Change development guide to use Ruby 3.4 by default (#5112) Fix exception in RC on OpenFeature::Engine absence [🤖] Update Latest Dependency: https://github.com/DataDog/dd-trace-rb/actions/runs/19996135509 [🤖] Update System Tests: https://github.com/DataDog/dd-trace-rb/actions/runs/19996155319 Add ruby guikld to all dsm files add DSM to codeowners feat: add process tags to traces (#5033) DEBUG-3558 DI: chunk snapshot payloads (#5086) CI: enable push_to_test_optimization unless this is a pull request from a fork fix steep checks [🤖] Lock Dependency: https://github.com/DataDog/dd-trace-rb/actions/runs/19827679824 [🤖] Lock Dependency: https://github.com/DataDog/dd-trace-rb/actions/runs/19827296218 Add test to verify consumer backlog serialization with kafka_commit tag Remove one diagnostic output Install rubygems Add diagnostic steps Use default rubygems+bundler for each Ruby version Revert "Disable profiling specs for 4.0" Use git `datadog-ruby_core_source` having 4.0 ...
What does this PR do?
Implements chunking of dynamic instrumentation snapshot payloads to stay under the 10 MB intake limit.
Motivation:
Without chunking, if a probe (or multiple probes) produce many events, all of the events will be dropped by the intake.
Change log entry
Yes: dynamic instrumentation: fix sending large quantities of snapshots
Additional Notes:
There is also "snapshot pruning" which is supposed to be done to reduce the size of individual snapshot events below the 1 MB limit for a "log line". This is not in scope for this PR (or Ruby Live Debugger GA).
This PR ensures that if many events are generated by Live Debugger, they all get sent to the backend, but does not help with huge individual snapshots getting dropped.
This PR does however add diagnostics when snapshots are dropped due to excessive size.
How to test the change?
Unit tests added