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

V4.46.0 proposal #4642

Merged
merged 27 commits into from
Aug 30, 2024
Merged

V4.46.0 proposal #4642

merged 27 commits into from
Aug 30, 2024

Conversation

bengl
Copy link
Collaborator

@bengl bengl commented Aug 29, 2024

Fixes

Features

Improvements

Excluded from Release notes

sabrenner and others added 27 commits August 29, 2024 14:29
* wrap in appropriate async resource

* test

* trigger ci

* remove .only

* lint

* slim tests

* v3 patching uses tracing channel directly

* add v4 patching using tracing channel internal api

* fixes and cleanup
While _functioning_ correctly, the logging and telemetry was broken for
packages that met one range, but didn't meet a subsequent range. This is
now fixed.
* log.error() calls should go to telemetry

* remove unneccessary telemetry log calls
* Telemetry emission and heuristics are now independent.
* profiling.enabled is four-state now (true, false, auto, undefined)
* Adds injectionEnabled config
* Removes profiling.{ssi, heuristicsEnabled} config.
* Move derived telemetry.logCollection value computation to _applyCalculated()
* Tidy _merge()
* add a safety layer to shimmed functions

* tests

* make it work with recursion

* wrap only once per function instead of per invocation

* lint

* hoist error handler, to be once per function instead of per invocation

* no need to delete holder values since the variable isn't re-used anymore

* cleanup

* safeWrap non-methods

* ensure wrapFunction is used whenever wrap was used with 2 args

* fix package guadrails test
prevent git directory from being uploaded as part of systems tests
* add missing `clearTimeout`

* gate timeout spans under `lambda`

* add unit tests

* add comment on when we can disable it
* fix: remove async scope in hapi dd-instrumentation
* fix linting
* replace asyncResource for tracingChannel
* move tracing channels to helpers
* add test
* remove tracingChannel map

---------

Co-authored-by: Cris Naranjo <[email protected]>
This is a temporary fix until v22.8.0 is released due to a bug in
v22.7.0: nodejs/node#54518
Allow integration tests to mock the remote config abilities of the agent.

This is done by first setting up a new remote config "file" using the new
`FakeAgent#addRemoteConfig` method before running the main part of the
integration test. This primes the fake agent to respond with this config for
http requests to the `/v0.7/config` endpoint.
These were the remaining areas with non-trivial code that might not be
caught by try/catches when our code throws an exception. Adding
`wrapFunction` adds that try/catch appropriately, but only when SSI is
enabled. Otherwise these are all passthroughs. In the future, we may
enable those try/catches at all times.
* Bump @datadog/native-appsec to 8.1.0

* Bump @datadog/native-appsec to 8.1.1
@bengl bengl requested a review from a team as a code owner August 29, 2024 18:31
Copy link

Overall package size

Self size: 6.99 MB
Deduped: 63.14 MB
No deduping: 63.42 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 | 7.01 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 | | 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 | | 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 | | path-to-regexp | 0.1.7 | 6.78 kB | 6.78 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

@pr-commenter
Copy link

pr-commenter bot commented Aug 29, 2024

Benchmarks

Benchmark execution time: 2024-08-29 18:43:20

Comparing candidate commit cbd6e9c in PR branch v4.46.0-proposal with baseline commit 165f3cd in branch v4.x.

Found 0 performance improvements and 17 performance regressions! Performance is the same for 755 metrics, 26 unstable metrics.

scenario:appsec-iast-no-vulnerability-control-16

  • 🟥 instructions [+74.3M instructions; +76.5M instructions] or [+5.448%; +5.612%]

scenario:appsec-iast-no-vulnerability-control-18

  • 🟥 cpu_user_time [+29.024ms; +49.775ms] or [+5.164%; +8.856%]
  • 🟥 instructions [+81.3M instructions; +83.8M instructions] or [+6.034%; +6.218%]
  • 🟥 max_rss_usage [+4.312MB; +4.909MB] or [+5.475%; +6.234%]

scenario:appsec-iast-no-vulnerability-control-20

  • 🟥 instructions [+67.2M instructions; +71.9M instructions] or [+5.626%; +6.013%]

scenario:plugin-dns-with-tracer-16

  • 🟥 cpu_user_time [+54.833ms; +73.378ms] or [+10.267%; +13.740%]
  • 🟥 instructions [+110.0M instructions; +117.6M instructions] or [+9.941%; +10.626%]
  • 🟥 max_rss_usage [+5.301MB; +5.707MB] or [+9.010%; +9.698%]

scenario:plugin-dns-with-tracer-18

  • 🟥 cpu_user_time [+59.505ms; +79.898ms] or [+11.735%; +15.757%]
  • 🟥 instructions [+114.0M instructions; +122.6M instructions] or [+10.404%; +11.186%]
  • 🟥 max_rss_usage [+4.924MB; +5.202MB] or [+7.071%; +7.469%]

scenario:plugin-dns-with-tracer-20

  • 🟥 cpu_user_time [+31.638ms; +55.020ms] or [+5.404%; +9.398%]
  • 🟥 instructions [+91.6M instructions; +103.3M instructions] or [+8.425%; +9.503%]
  • 🟥 max_rss_usage [+4.329MB; +4.692MB] or [+5.648%; +6.122%]

scenario:plugin-http-client-with-tracer-16

  • 🟥 instructions [+90.0M instructions; +90.7M instructions] or [+5.639%; +5.682%]

scenario:plugin-http-client-with-tracer-18

  • 🟥 cpu_user_time [+47.497ms; +69.379ms] or [+6.149%; +8.982%]
  • 🟥 instructions [+95.8M instructions; +96.7M instructions] or [+6.340%; +6.403%]

Copy link
Collaborator

@juan-fernandez juan-fernandez left a comment

Choose a reason for hiding this comment

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

thanks! Looks good from test visibility's perspective

Copy link
Contributor

@szegedi szegedi left a comment

Choose a reason for hiding this comment

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

Looks good for profiler-related changes.

@bengl bengl merged commit c1fe1db into v4.x Aug 30, 2024
172 checks passed
@bengl bengl deleted the v4.46.0-proposal branch August 30, 2024 17:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.