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

[DI] Record thread paused telemetry when breakpoint is hit

Open watson opened this issue 9 months ago • 9 comments
trafficstars

What does this PR do?

The target thread is paused for some amount of time when ever a breakpoint is hit. Record the amount of time in milliseconds as telemetry.

Motivation

It's important to track how big of an impact using breakpoints has on the instrumented application. We can't know this simply from benchmarks, as each customer application is unique. So getting some real world data is important.

Plugin Checklist

Additional Notes

watson avatar Jan 27 '25 13:01 watson

This stack of pull requests is managed by Graphite. Learn more about stacking.

watson avatar Jan 27 '25 13:01 watson

Overall package size

Self size: 9.45 MB Deduped: 103.47 MB No deduping: 103.99 MB

Dependency sizes | name | version | self size | total size | |------|---------|-----------|------------| | @datadog/libdatadog | 0.5.1 | 29.73 MB | 29.73 MB | | @datadog/native-appsec | 8.5.2 | 19.33 MB | 19.34 MB | | @datadog/pprof | 5.8.0 | 12.55 MB | 12.92 MB | | @datadog/native-iast-taint-tracking | 4.0.0 | 11.72 MB | 11.73 MB | | @opentelemetry/core | 1.30.1 | 908.66 kB | 7.16 MB | | protobufjs | 7.4.0 | 2.77 MB | 5.42 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.13.1 | 117.64 kB | 839.26 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.0 | 29.34 kB | 29.34 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.8 | 25.08 kB | 25.08 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.3 | 4.47 kB | 4.47 kB |

🤖 This report was automatically generated by heaviest-objects-in-the-universe

github-actions[bot] avatar Jan 27 '25 13:01 github-actions[bot]

Benchmarks

Benchmark execution time: 2025-05-27 12:25:06

Comparing candidate commit 87f0f807676aab5f07e1aaa404afdf7a70e4f1f6 in PR branch watson/DEBUG-2858/thread-paused-telemetry with baseline commit 5ba58ae92009571531b19231c71676a65de19639 in branch master.

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

pr-commenter[bot] avatar Jan 27 '25 14:01 pr-commenter[bot]

We could improve the code a tad by reusing the start time as timeout later.

Do you mean timestamp instead of timeout?

watson avatar Feb 25 '25 09:02 watson

@watson yes, just updated the typo

BridgeAR avatar Feb 25 '25 12:02 BridgeAR

We could improve the code a tad by reusing the start time as timestamp later.

That sounds good. I'll do that in a separate PR as it's not really related to this one

watson avatar Feb 26 '25 05:02 watson

@BridgeAR Oh hang on... hrtime has no basis in real time as it has an arbitrary start time, so it can't be used for timestamps.

watson avatar Feb 26 '25 05:02 watson

Codecov Report

:white_check_mark: All modified and coverable lines are covered by tests. :white_check_mark: Project coverage is 78.94%. Comparing base (5ba58ae) to head (87f0f80). :warning: Report is 712 commits behind head on master.

Additional details and impacted files
@@            Coverage Diff             @@
##           master    #5156      +/-   ##
==========================================
- Coverage   79.35%   78.94%   -0.42%     
==========================================
  Files         520      345     -175     
  Lines       23734    14347    -9387     
==========================================
- Hits        18834    11326    -7508     
+ Misses       4900     3021    -1879     

: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 May 27 '25 05:05 codecov[bot]

Datadog Report

Branch report: watson/DEBUG-2858/thread-paused-telemetry Commit report: 466f1c0 Test service: dd-trace-js-integration-tests

:white_check_mark: 0 Failed, 1146 Passed, 0 Skipped, 16m 42.42s Total Time

@watson PTAL

BridgeAR avatar Sep 27 '25 09:09 BridgeAR

I am closing this for now to limit the surface of things we have to keep track of in the repo. Please reopen when getting back to it.

BridgeAR avatar Nov 05 '25 13:11 BridgeAR