Skip to content
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

[DI] Probe file path matching algo should prefer shorter paths #5186

Merged
merged 1 commit into from
Feb 1, 2025

Conversation

watson
Copy link
Collaborator

@watson watson commented Feb 1, 2025

What does this PR do?

Improve the probe file path algorithm to prefer shorter paths if there's two matching paths where the mathing part are of equal length.

Motivation

This fixes the case where two partial matches of equal length exist in the list of loaded files. For example if trying to apply a probe to the file path utils/index.js with the following loaded files, we want to pick the first one:

  • file:///app/utils/index.js
  • file:///app/node_modules/some-module/utils/index.js

Plugin Checklist

Additional Notes

@watson watson requested review from a team as code owners February 1, 2025 07:08
@watson watson self-assigned this Feb 1, 2025
Copy link
Collaborator Author

watson commented Feb 1, 2025

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

Copy link

github-actions bot commented Feb 1, 2025

Overall package size

Self size: 8.57 MB
Deduped: 94.97 MB
No deduping: 95.48 MB

Dependency sizes | name | version | self size | total size | |------|---------|-----------|------------| | @datadog/libdatadog | 0.4.0 | 29.44 MB | 29.44 MB | | @datadog/native-appsec | 8.4.0 | 19.25 MB | 19.26 MB | | @datadog/native-iast-taint-tracking | 3.2.0 | 13.9 MB | 13.91 MB | | @datadog/pprof | 5.5.1 | 9.79 MB | 10.17 MB | | protobufjs | 7.2.5 | 2.77 MB | 5.16 MB | | @datadog/native-iast-rewriter | 2.6.1 | 2.59 MB | 2.73 MB | | @opentelemetry/core | 1.14.0 | 872.87 kB | 1.47 MB | | @datadog/native-metrics | 3.1.0 | 1.06 MB | 1.46 MB | | @opentelemetry/api | 1.8.0 | 1.21 MB | 1.21 MB | | import-in-the-middle | 1.11.2 | 112.74 kB | 826.22 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.0 | 109.9 kB | 109.9 kB | | semver | 7.6.3 | 95.82 kB | 95.82 kB | | lodash.sortby | 4.7.0 | 75.76 kB | 75.76 kB | | ignore | 5.3.1 | 51.46 kB | 51.46 kB | | shell-quote | 1.8.1 | 44.96 kB | 44.96 kB | | istanbul-lib-coverage | 3.2.0 | 29.34 kB | 29.34 kB | | rfdc | 1.3.1 | 25.21 kB | 25.21 kB | | @isaacs/ttlcache | 1.4.1 | 25.2 kB | 25.2 kB | | tlhunter-sorted-set | 0.1.0 | 24.94 kB | 24.94 kB | | limiter | 1.1.5 | 23.17 kB | 23.17 kB | | dc-polyfill | 0.1.4 | 23.1 kB | 23.1 kB | | retry | 0.13.1 | 18.85 kB | 18.85 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 | | 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

Copy link

codecov bot commented Feb 1, 2025

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 81.11%. Comparing base (729972e) to head (ba9cfca).
Report is 1 commits behind head on master.

Additional details and impacted files
@@           Coverage Diff           @@
##           master    #5186   +/-   ##
=======================================
  Coverage   81.11%   81.11%           
=======================================
  Files         480      480           
  Lines       21444    21444           
=======================================
  Hits        17394    17394           
  Misses       4050     4050           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@watson watson force-pushed the watson/fix-path-detection branch from 11ce0d2 to ba9cfca Compare February 1, 2025 07:10
@datadog-datadog-prod-us1
Copy link

datadog-datadog-prod-us1 bot commented Feb 1, 2025

Datadog Report

Branch report: watson/fix-path-detection
Commit report: 94f03f5
Test service: dd-trace-js-integration-tests

✅ 0 Failed, 614 Passed, 0 Skipped, 12m 5.78s Total Time

@pr-commenter
Copy link

pr-commenter bot commented Feb 1, 2025

Benchmarks

Benchmark execution time: 2025-02-01 07:24:52

Comparing candidate commit ba9cfca in PR branch watson/fix-path-detection with baseline commit 729972e in branch master.

Found 2 performance improvements and 0 performance regressions! Performance is the same for 908 metrics, 23 unstable metrics.

scenario:plugin-graphql-with-depth-and-collapse-on-18

  • 🟩 max_rss_usage [-122.312MB; -65.204MB] or [-12.771%; -6.808%]

scenario:plugin-graphql-with-depth-on-max-18

  • 🟩 max_rss_usage [-122.373MB; -60.247MB] or [-12.768%; -6.286%]

@watson watson enabled auto-merge (squash) February 1, 2025 07:30
@watson watson merged commit bcdb068 into master Feb 1, 2025
353 checks passed
@watson watson deleted the watson/fix-path-detection branch February 1, 2025 12:28
@watson watson mentioned this pull request Feb 3, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants