-
Notifications
You must be signed in to change notification settings - Fork 339
add event loop and gc configuration for runtime metrics #5913
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
base: master
Are you sure you want to change the base?
Conversation
Overall package sizeSelf size: 9.72 MB Dependency sizes| name | version | self size | total size | |------|---------|-----------|------------| | @datadog/libdatadog | 0.7.0 | 35.02 MB | 35.02 MB | | @datadog/native-appsec | 8.5.2 | 19.33 MB | 19.34 MB | | @datadog/native-iast-taint-tracking | 4.0.0 | 11.72 MB | 11.73 MB | | @datadog/pprof | 5.8.2 | 9.56 MB | 9.93 MB | | @opentelemetry/core | 1.30.1 | 908.66 kB | 7.16 MB | | protobufjs | 7.5.3 | 2.95 MB | 5.6 MB | | @datadog/wasm-js-rewriter | 4.0.1 | 2.85 MB | 3.58 MB | | @datadog/native-metrics | 3.1.1 | 1.02 MB | 1.43 MB | | @opentelemetry/api | 1.8.0 | 1.21 MB | 1.21 MB | | import-in-the-middle | 1.14.0 | 120.58 kB | 841.68 kB | | source-map | 0.7.4 | 226 kB | 226 kB | | opentracing | 0.14.7 | 194.81 kB | 194.81 kB | | lru-cache | 7.18.3 | 133.92 kB | 133.92 kB | | pprof-format | 2.1.0 | 111.69 kB | 111.69 kB | | @datadog/sketches-js | 2.1.1 | 109.9 kB | 109.9 kB | | lodash.sortby | 4.7.0 | 75.76 kB | 75.76 kB | | ignore | 5.3.2 | 53.63 kB | 53.63 kB | | istanbul-lib-coverage | 3.2.2 | 34.37 kB | 34.37 kB | | rfdc | 1.4.1 | 27.15 kB | 27.15 kB | | @isaacs/ttlcache | 1.4.1 | 25.2 kB | 25.2 kB | | dc-polyfill | 0.1.9 | 25.11 kB | 25.11 kB | | tlhunter-sorted-set | 0.1.0 | 24.94 kB | 24.94 kB | | shell-quote | 1.8.2 | 23.54 kB | 23.54 kB | | limiter | 1.1.5 | 23.17 kB | 23.17 kB | | retry | 0.13.1 | 18.85 kB | 18.85 kB | | semifies | 1.0.0 | 15.84 kB | 15.84 kB | | jest-docblock | 29.7.0 | 8.99 kB | 12.76 kB | | crypto-randomuuid | 1.0.0 | 11.18 kB | 11.18 kB | | ttl-set | 1.0.0 | 4.61 kB | 9.69 kB | | mutexify | 1.4.0 | 5.71 kB | 8.74 kB | | path-to-regexp | 0.1.12 | 6.6 kB | 6.6 kB | | koalas | 1.0.2 | 6.47 kB | 6.47 kB | | module-details-from-path | 1.0.4 | 3.96 kB | 3.96 kB |🤖 This report was automatically generated by heaviest-objects-in-the-universe |
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## master #5913 +/- ##
=======================================
Coverage 80.75% 80.75%
=======================================
Files 462 462
Lines 19924 19941 +17
=======================================
+ Hits 16090 16104 +14
- Misses 3834 3837 +3 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
Datadog ReportBranch report: ✅ 0 Failed, 1255 Passed, 0 Skipped, 20m 35.9s Total Time |
BenchmarksBenchmark execution time: 2025-06-19 15:51:13 Comparing candidate commit ca81a0f in PR branch Found 0 performance improvements and 0 performance regressions! Performance is the same for 1265 metrics, 58 unstable metrics. |
948ca7d
to
ca81a0f
Compare
defaults['runtimeMetrics.gc'] = true | ||
defaults['runtimeMetrics.gcCollector'] = 'default' |
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.
Does it make sense to have these as two separate config properties? You could have just one (just keep .gc
?) and introduce an 'off'
value (and maybe use 'on'
instead of 'default'
for consistency.) You could still have config translate incoming env var values of '0', '1', 'true', 'false' to off and on. Of course, for consistency you should then probably allow use of off and on as keywords for the other two properties a well (enabled
and eventLoop
.) Maybe we should just add on
and off
as recognized values in util.js.
We recently added a config for choosing the compression method for uploading profiles and use on/off there in addition to specifically naming compression methods.
Of course, if you envision there could be even more config options for GC metrics in the future, then it may make sense to keep them as separate properties, but we should assess how likely is that.
What does this PR do?
Add event loop and GC configuration for runtime metrics.
Motivation
Allow finer control on the types of metrics to collect, especially on the native front. Allowing to pick which GC collector to use can also be used to work around issues with one of the collector by temporarily switching to a different one.