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

PROF-10497: Add span IDs to timeline DNS and TCP events #4655

Merged
merged 7 commits into from
Sep 13, 2024

Conversation

szegedi
Copy link
Contributor

@szegedi szegedi commented Sep 6, 2024

What does this PR do?

Switches from using the Node perf_hooks API to using Datadog tracing instrumentation for DNS and TCP events in profiling timeline.

Motivation

With this change, DNS and TCP events in timeline are associated with spans, so they can be correctly assigned in e.g. tracing Code Hotspots view. perf_hooks API is still used for GC events or when code hotspots feature is turned off.

Additional Notes

  • The implementation uses tracing plugins, but it is managing its own plugin instances internally.
  • The implementation will add additional subscribers to apm:dns:* and apm:tcp:* diagnostic channels. This does not contribute notable overhead since both the net and dns tracing plugins are on by default, and they add subscribers anyway, triggering the use of the more complicated code path in the net and dns instrumentations.
  • If profiling is on, but code hotspots are explicitly turned off (they're on by default, except on Windows) then the implementation falls back to the Node API as it does not require span IDs.

Copy link

github-actions bot commented Sep 6, 2024

Overall package size

Self size: 7.06 MB
Deduped: 62.42 MB
No deduping: 62.7 MB

Dependency sizes | name | version | self size | total size | |------|---------|-----------|------------| | @datadog/native-appsec | 8.1.1 | 18.67 MB | 18.68 MB | | @datadog/native-iast-taint-tracking | 3.1.0 | 12.27 MB | 12.28 MB | | @datadog/pprof | 5.3.0 | 9.85 MB | 10.22 MB | | protobufjs | 7.2.5 | 2.77 MB | 5.16 MB | | @datadog/native-iast-rewriter | 2.4.1 | 2.14 MB | 2.23 MB | | @opentelemetry/core | 1.14.0 | 872.87 kB | 1.47 MB | | @datadog/native-metrics | 2.0.0 | 898.77 kB | 1.3 MB | | @opentelemetry/api | 1.8.0 | 1.21 MB | 1.21 MB | | jsonpath-plus | 9.0.0 | 580.4 kB | 1.03 MB | | import-in-the-middle | 1.8.1 | 71.67 kB | 785.15 kB | | msgpack-lite | 0.1.26 | 201.16 kB | 281.59 kB | | opentracing | 0.14.7 | 194.81 kB | 194.81 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 | | lru-cache | 7.14.0 | 74.95 kB | 74.95 kB | | ignore | 5.3.1 | 51.46 kB | 51.46 kB | | int64-buffer | 0.1.10 | 49.18 kB | 49.18 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 | | 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 | | koalas | 1.0.2 | 6.47 kB | 6.47 kB | | path-to-regexp | 0.1.10 | 6.38 kB | 6.38 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

@szegedi szegedi changed the title Remove support for pre-16 Node PROF-10497: Add span IDs to timeline DNS and TCP events Sep 6, 2024
@pr-commenter
Copy link

pr-commenter bot commented Sep 6, 2024

Benchmarks

Benchmark execution time: 2024-09-10 14:50:20

Comparing candidate commit 46aa4f7 in PR branch szegedi/spanning-events with baseline commit 6117baf in branch master.

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

@szegedi szegedi force-pushed the szegedi/spanning-events branch 2 times, most recently from 4815f0f to 9b0df51 Compare September 10, 2024 10:31
@szegedi szegedi marked this pull request as ready for review September 11, 2024 10:01
@szegedi szegedi requested a review from a team as a code owner September 11, 2024 10:01
@szegedi szegedi merged commit 2e13b2b into master Sep 13, 2024
168 checks passed
@szegedi szegedi deleted the szegedi/spanning-events branch September 13, 2024 09:10
This was referenced Sep 30, 2024
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