-
Notifications
You must be signed in to change notification settings - Fork 398
Telemetry: send events in forked children #5074
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-20 18:37:32 UTC |
Typing analysisNote: Ignored files are excluded from the next sections.
|
9176330 to
1e15731
Compare
|
✅ Tests 🎉 All green!❄️ No new flaky tests detected 🎯 Code Coverage 🔗 Commit SHA: 114b87e | Docs | Datadog PR Page | Was this helpful? Give us feedback! |
BenchmarksBenchmark execution time: 2025-11-26 02:06:27 Comparing candidate commit 114b87e in PR branch Found 1 performance improvements and 0 performance regressions! Performance is the same for 43 metrics, 2 unstable metrics. scenario:profiling - intern_all 1000 repeated strings
|
* master: [APMAPI-1774] Fix stable config segfault during error handling (#5073) Disable Ruby 3.5 preview1 testing [🤖] Update Latest Dependency: https://github.com/DataDog/dd-trace-rb/actions/runs/19603081078 [🤖] Update System Tests: https://github.com/DataDog/dd-trace-rb/actions/runs/19603099930 [NO-TICKET] Workaround profiling benchmark flakiness on Ruby 2.6 DI: make a test method longer to avoid flakiness (#5069)
marcotc
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 left one comment regarding internal changes (refactoring), but the functionality looks sound!
|
I added a new documentation file that contains all of the info I think is relevant to telemetry development (initial event handling, fork handling, event submission prior to worker start). |
* telemetry-fork-2: Move flushing to core worker modules to fix open feature worker tests fix test, add another note fix worker race and add tests Telemetry: send events in forked children (#5074)
…ate', 'u/fix-ruby-warnings', 'u/di-repeated-adds', 'u/di-probe-addition', 'u/rc-diagnostics', 'u/di-probe-removal-integration-test', 'u/transport-api-version', 'u/di-duration-flake-3' and 'u/telemetry-fork-2' into base * u/fix-quoting: fix quoting * u/after-fork-test-state: standard fix process discovery spec relying on global state fix global state dependency in crashtracking test * u/fix-ruby-warnings: fix ruby warnings when accessing undefined instance variables * u/di-repeated-adds: DEBUG-3499 DI: do not instrument when there is already an installed probe with the same id * u/di-probe-addition: type fix ruby warning type standard DI: fix accounting when intrumenting upon class definition, add instrumentation leak detector * u/rc-diagnostics: permit version to be missing note on custom RC: add diagnostics for invalid values * u/di-probe-removal-integration-test: mark as di test fix test with RC changes backed out DI: rework remote config interface to use changes * u/transport-api-version: type type Transports: remove api_version * u/di-duration-flake-3: set DI test duration upper bound to 1000 seconds * u/telemetry-fork-2: metrics fix expect_in_fork debugging fix ruby warnings when accessing undefined instance variables explain Telemetry: send events in forked children (#5074) investigating flaky test add assertions skip on jruby 9.2 enable skipped tests potentially reproducing the race switch to keyword arg Move flushing to core worker modules to fix open feature worker tests fix test, add another note fix worker race and add tests
* commit '10f07a270af2a866cf0b290c4f26b30f0d81a509': do everything from at fork monkey patch debugging helper expect_in_fork debugging metrics fix Create a helper for platform restriction for forking tests explain fix ruby warnings when accessing undefined instance variables Telemetry: send events in forked children (#5074) standard standard standard lets say this is no longer known flaky improve jruby exclusion in file descriptor leakage check retest
* commit '1aa50c469ca15228f2633acc07cde92ee5c027cb': update tests fix double definition do everything from at fork monkey patch expect_in_fork debugging metrics fix Create a helper for platform restriction for forking tests explain fix ruby warnings when accessing undefined instance variables Telemetry: send events in forked children (#5074)
…ece2f2598aec3d6944db49eec07d89799ab6'; commit 'ddb2e5ecc4be3c00b3937ee80e89b396abcc69d3' into base * commit 'bc0dc00cba9d265a980d078b112f957dcaa1372c': debug-4548 Increase number of iterations for flakiness * commit '2727ece2f2598aec3d6944db49eec07d89799ab6': improve diagnostics of "leaked" file descriptors for jruby * commit 'ddb2e5ecc4be3c00b3937ee80e89b396abcc69d3': forking platform only standard specify host explicitly for ci standard remove debug standard steep remove debug update tests fix double definition do everything from at fork monkey patch expect_in_fork debugging metrics fix Create a helper for platform restriction for forking tests explain fix ruby warnings when accessing undefined instance variables Telemetry: send events in forked children (#5074)
What does this PR do?
Changes telemetry to send events in forked children
Motivation:
Dynamic Instrumentation / Live Debugger require telemetry app-heartbeat events to properly render UI. These events are normally sent from forked children in forking web servers, and presently are missing for most customers.
Change log entry
Yes: fix Live Debugger / Dynamic Instrumentation UI for forking web servers
Additional Notes:
Telemetry has some special logic to deal with app-started/configuration-change events due to the component tree being created multiple times by dd-trace-rb, but system tests expecting a single set of events.
This PR further augments that logic to go back from configuration-change events to app-started in the forked children, which are reported as brand new processes.
How to test the change?
Tests added