-
Notifications
You must be signed in to change notification settings - Fork 309
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
temporary upper bound to the router instrumentation #4862
Conversation
Overall package sizeSelf size: 7.92 MB Dependency sizes| name | version | self size | total size | |------|---------|-----------|------------| | @datadog/native-appsec | 8.2.1 | 19.18 MB | 19.19 MB | | @datadog/native-iast-taint-tracking | 3.2.0 | 13.9 MB | 13.91 MB | | @datadog/pprof | 5.4.1 | 9.76 MB | 10.13 MB | | protobufjs | 7.2.5 | 2.77 MB | 5.16 MB | | @datadog/native-iast-rewriter | 2.5.0 | 2.51 MB | 2.65 MB | | @opentelemetry/core | 1.14.0 | 872.87 kB | 1.47 MB | | @datadog/native-metrics | 3.0.1 | 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 | | msgpack-lite | 0.1.26 | 201.16 kB | 281.59 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 | | 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 |
BenchmarksBenchmark execution time: 2024-11-05 22:28:03 Comparing candidate commit 7ec94c5 in PR branch Found 0 performance improvements and 0 performance regressions! Performance is the same for 261 metrics, 5 unstable metrics. |
@@ -170,7 +170,7 @@ function createWrapRouterMethod (name) { | |||
|
|||
const wrapRouterMethod = createWrapRouterMethod('router') | |||
|
|||
addHook({ name: 'router', versions: ['>=1'] }, Router => { | |||
addHook({ name: 'router', versions: ['>=1 <2.0.0'] }, Router => { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
So just for my own clarity
We don't support Express v5+ because we actually don't support Router v2+.
Which means that we first need to support v2 of Router and then we can see if that fixes Express v5, if not then we need to also support Express v5
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, we'd need to properly support Router 2.x along with Express 5.x. In my local testing, I got spans from express.request
with Express 5.x if we don't try to trace router 2
, but not any of the express middleware spans. To fully support Express 5.x, we'd need to create middleware spans too.
Just updated the description of the PR that even though all the tests pass, except for 2 unrelated checklist type ones, the app itself is throwing an error with this branch:
I don't consider this to be a great outcome either. Researching an approach where we don't cap the upper bound and just try to fix Router 2 instead: #4872 |
Closing this PR in favor of #4872 |
What does this PR do?
When you try to spin up an Express 5.x application with the tracer, there's an error about
fast_star
:It looks like Express 5.x uses Router 2.x which the instrumentation isn't ready to handle at the moment.
This PR adds a temporary upper bound so we only try to trace router 1.x so the error doesn't get thrown.
One problem I'm seeing right now is that even though the test passes, the application throws errors like:
Researching an alternative with #4872
Motivation
Related to AIDM-438
Plugin Checklist
Additional Notes