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

Make HTTP clients fit in the plugin hierarchy #3178

Merged
merged 2 commits into from
Jun 1, 2023

Conversation

jbertran
Copy link
Contributor

What does this PR do?

  • Move HTTP and HTTP2 clients to ClientPlugin
  • Stop subscribing to connect channels in all OutboundPlugins, since only cassandra actually uses this channel

Motivation

To introduce peer service (see #3177), it's helpful for all client/producer plugins to have at least OutboundPlugin in their inheritance path.

Plugin Checklist

  • Unit tests.

Additional Notes

@github-actions
Copy link

github-actions bot commented May 22, 2023

Overall package size

Self size: 4.18 MB
Deduped: 58.38 MB
No deduping: 58.43 MB

Dependency sizes

name version self size total size
@datadog/pprof 2.2.1 14.24 MB 15.12 MB
@datadog/native-iast-taint-tracking 1.4.1 14.85 MB 14.86 MB
@datadog/native-appsec 3.2.0 13.38 MB 13.39 MB
protobufjs 7.1.2 2.76 MB 6.55 MB
@datadog/native-iast-rewriter 2.0.1 2.09 MB 2.1 MB
@datadog/native-metrics 2.0.0 898.77 kB 1.3 MB
opentracing 0.14.7 194.81 kB 194.81 kB
semver 7.3.8 88.2 kB 118.6 kB
@datadog/sketches-js 2.1.0 109.9 kB 109.9 kB
lodash.sortby 4.7.0 75.76 kB 75.76 kB
lru-cache 7.14.0 74.95 kB 74.95 kB
ipaddr.js 2.0.1 59.52 kB 59.52 kB
ignore 5.2.0 48.87 kB 48.87 kB
import-in-the-middle 1.3.5 34.34 kB 38.81 kB
istanbul-lib-coverage 3.2.0 29.34 kB 29.34 kB
retry 0.10.1 27.44 kB 27.44 kB
lodash.uniq 4.5.0 25.01 kB 25.01 kB
limiter 1.1.5 23.17 kB 23.17 kB
lodash.kebabcase 4.1.1 17.75 kB 17.75 kB
lodash.pick 4.4.0 16.33 kB 16.33 kB
node-abort-controller 3.0.1 14.33 kB 14.33 kB
crypto-randomuuid 1.0.0 11.18 kB 11.18 kB
diagnostics_channel 1.1.0 7.07 kB 7.07 kB
path-to-regexp 0.1.7 6.78 kB 6.78 kB
koalas 1.0.2 6.47 kB 6.47 kB
methods 1.1.2 5.29 kB 5.29 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

@codecov
Copy link

codecov bot commented May 22, 2023

Codecov Report

Merging #3178 (cfae42e) into master (d638b4b) will decrease coverage by 0.01%.
The diff coverage is 100.00%.

❗ Current head cfae42e differs from pull request most recent head cac2cd6. Consider uploading reports for the commit cac2cd6 to get more accurate results

@@            Coverage Diff             @@
##           master    #3178      +/-   ##
==========================================
- Coverage   86.57%   86.56%   -0.01%     
==========================================
  Files         333      333              
  Lines       11934    11928       -6     
  Branches       33       33              
==========================================
- Hits        10332    10326       -6     
  Misses       1602     1602              
Impacted Files Coverage Δ
packages/dd-trace/src/plugins/outbound.js 50.00% <ø> (ø)
...kages/datadog-plugin-cassandra-driver/src/index.js 93.33% <100.00%> (+1.66%) ⬆️
packages/datadog-plugin-http/src/client.js 96.90% <100.00%> (-0.10%) ⬇️
packages/datadog-plugin-http2/src/client.js 96.80% <100.00%> (-0.07%) ⬇️

... and 3 files with indirect coverage changes

📣 We’re building smart automated test selection to slash your CI/CD build times. Learn more

@jbertran jbertran marked this pull request as ready for review May 22, 2023 16:13
@jbertran jbertran requested a review from a team as a code owner May 22, 2023 16:13
@pr-commenter
Copy link

pr-commenter bot commented May 22, 2023

Benchmarks

Comparing candidate commit cac2cd6 in PR branch jbertran/http-client-tree with baseline commit d638b4b in branch master.

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

@jbertran jbertran force-pushed the jbertran/http-client-tree branch 5 times, most recently from 1d03fe3 to 8ab1379 Compare May 24, 2023 13:33
tlhunter
tlhunter previously approved these changes May 30, 2023
Copy link
Member

@tlhunter tlhunter left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks good to me. It makes sense that an HTTP client would extend from ClientPlugin, being a client and all.

This appears to be entirely a refactor, nothing new, and the untouched tests all pass.

That said I would like @rochdev to take a quick look.

})
}

connect (url) {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why not keep it there? If there are no publishers, this doesn't impact anything.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wasn't sure of the impact of subscribing to a channel, so I removed it by default. I'll revert this so we have an easy way to grab connect events in every client.

@jbertran jbertran merged commit 3159b79 into master Jun 1, 2023
104 checks passed
uurien pushed a commit that referenced this pull request Jun 1, 2023
* move http client to clientPlugin

* move http2 client to clientPlugin
uurien pushed a commit that referenced this pull request Jun 1, 2023
* move http client to clientPlugin

* move http2 client to clientPlugin
uurien pushed a commit that referenced this pull request Jun 1, 2023
* move http client to clientPlugin

* move http2 client to clientPlugin
This was referenced Jun 1, 2023
uurien pushed a commit that referenced this pull request Jun 2, 2023
* move http client to clientPlugin

* move http2 client to clientPlugin
uurien pushed a commit that referenced this pull request Jun 2, 2023
* move http client to clientPlugin

* move http2 client to clientPlugin
uurien pushed a commit that referenced this pull request Jun 2, 2023
* move http client to clientPlugin

* move http2 client to clientPlugin
@tlhunter tlhunter deleted the jbertran/http-client-tree branch January 19, 2024 22:20
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.

None yet

3 participants