dd-trace-js icon indicating copy to clipboard operation
dd-trace-js copied to clipboard

add event loop and gc configuration for runtime metrics

Open rochdev opened this issue 5 months ago • 4 comments

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.

rochdev avatar Jun 18 '25 21:06 rochdev

Overall package size

Self size: 9.62 MB Deduped: 106.12 MB No deduping: 106.64 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

github-actions[bot] avatar Jun 18 '25 21:06 github-actions[bot]

Codecov Report

Attention: Patch coverage is 96.15385% with 1 line in your changes missing coverage. Please review.

Project coverage is 79.44%. Comparing base (9099b48) to head (b3cd2bb). Report is 3 commits behind head on master.

Files with missing lines Patch % Lines
...es/dd-trace/src/runtime_metrics/runtime_metrics.js 90.00% 1 Missing :warning:
Additional details and impacted files
@@            Coverage Diff             @@
##           master    #5913      +/-   ##
==========================================
- Coverage   80.53%   79.44%   -1.10%     
==========================================
  Files         454      432      -22     
  Lines       19372    18683     -689     
==========================================
- Hits        15602    14843     -759     
- Misses       3770     3840      +70     

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

:rocket: New features to boost your workflow:
  • :snowflake: Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • :package: JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

codecov[bot] avatar Jun 18 '25 21:06 codecov[bot]

Datadog Report

Branch report: runtime-metrics-gc-loop-config Commit report: ed30776 Test service: dd-trace-js-integration-tests

:white_check_mark: 0 Failed, 1260 Passed, 0 Skipped, 20m 22.87s Total Time

Benchmarks

Benchmark execution time: 2025-06-27 14:40:28

Comparing candidate commit b3cd2bbcbe2c9321a665543a59f42fc3844efeba in PR branch runtime-metrics-gc-loop-config with baseline commit 9099b48196c246f6bd4ff47fbbd440dc6cdf6108 in branch master.

Found 0 performance improvements and 0 performance regressions! Performance is the same for 1268 metrics, 55 unstable metrics.

pr-commenter[bot] avatar Jun 18 '25 22:06 pr-commenter[bot]

I did not yet properly look into it. I just wonder if we really want to support different implementations almost indefinitely, since that is likely the outcome for gcCollector (or we would have to make it a noop).

I don't think we'd want to keep them indefitely, but they are likely to stay for at least a few years, and after that we can indeed deprecate them and make configuring any implementation that no longer exists fall back to the default.

rochdev avatar Jun 25 '25 19:06 rochdev