feat(debugger): add Remote Enablement support#7137
Conversation
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## master #7137 +/- ##
==========================================
- Coverage 85.19% 85.13% -0.06%
==========================================
Files 532 532
Lines 22788 22893 +105
==========================================
+ Hits 19414 19491 +77
- Misses 3374 3402 +28 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
Overall package sizeSelf size: 4.41 MB Dependency sizes| name | version | self size | total size | |------|---------|-----------|------------| | import-in-the-middle | 2.0.0 | 68.46 kB | 797.03 kB | | dc-polyfill | 0.1.10 | 26.73 kB | 26.73 kB |🤖 This report was automatically generated by heaviest-objects-in-the-universe |
This comment has been minimized.
This comment has been minimized.
BenchmarksBenchmark execution time: 2026-01-19 19:32:45 Comparing candidate commit 8392030 in PR branch Found 0 performance improvements and 0 performance regressions! Performance is the same for 232 metrics, 28 unstable metrics. |
0c5d4ad to
21edda2
Compare
84300df to
918975b
Compare
21edda2 to
5d6eabd
Compare
918975b to
137abe9
Compare
5d6eabd to
a412829
Compare
137abe9 to
041ef5b
Compare
a412829 to
bc7d261
Compare
bc7d261 to
91ba2c1
Compare
041ef5b to
573563d
Compare
ce9aa71 to
c2e520a
Compare
573563d to
152a63b
Compare
c2e520a to
f369517
Compare
152a63b to
408e3f5
Compare
3d91f59 to
f53bcac
Compare
7f8c8d7 to
7195c95
Compare
|
This generally looks good to me, you might want to run it against this system-test https://github.com/DataDog/system-tests/blob/da17bdc4b54f09001bfd39cf50fd63d8f377cb8d/tests/debugger/test_debugger_inproduct_enablement.py#L55, and try a few manual failure scenarios flipping and deleting the config |
9317837 to
e5614fe
Compare
|
@tylfin thanks for reminding me about the system tests. They uncovered a bug where this PR didn't properly enable/disable Code Origin at runtime. The last commit added to this PR now should take care of that. The system tests are now passing locally, and I will update them once this PR lands |
Implements Remote Enablement (RE) for Dynamic Instrumentation/Live Debugger via APM_TRACING_MULTICONFIG. This also fixes a long standing issue, now allowing multiple APM_TRACING remote configurations to be received and merged with priority-based rules. Key Remote Config changes: - Add ApmTracingManager class for priority-based merging of multiple APM_TRACING configs (Service+Env > Service > Env > Cluster > Org) - Add APM_TRACING_MULTICONFIG, APM_TRACING_ENABLE_DYNAMIC_INSTRUMENTATION, APM_TRACING_ENABLE_CODE_ORIGIN, and APM_TRACING_ENABLE_LIVE_DEBUGGING capability flags - Implement field guarding in config.js #applyRemote() to adopt highest priority non-null value for each field
Co-authored-by: Tyler Finethy <tylfin@gmail.com>
BridgeAR
left a comment
There was a problem hiding this comment.
This is mostly LGTM, I just left a few minor things to check and some nits
|
@tylfin here's the promised system test update to validate remote enablement works for the Node.js tracer: DataDog/system-tests#6063 |

What does this PR do?
Implements Remote Enablement (RE) for Dynamic Instrumentation/Live Debugger and Code Origin via
APM_TRACING_MULTICONFIG.Key Remote Config changes:
RCClientLibConfigManagerclass for priority-based merging of multipleAPM_TRACINGconfigs (Service+Env > Service > Env > Cluster > Org)APM_TRACING_MULTICONFIG,APM_TRACING_ENABLE_DYNAMIC_INSTRUMENTATION, andAPM_TRACING_ENABLE_CODE_ORIGINcapability flagsconfig/remote_config.jsKey Debugger changes:
isStarted(),stop(),configure()) todebugger/index.jsfor dynamic controlKey Code Origin changes:
Motivation
The Debugger (Dynamic Instrumentation/Live Debugging) needs to support Remote Enablement, allowing operators to dynamically enable, disable, or reconfigure the debugger without requiring service restarts.
This implementation follows the
APM_TRACING_MULTICONFIGRFC.