Skip to content

V4.22.0 proposal#3899

Merged
CarlesDD merged 17 commits intov4.xfrom
v4.22.0-proposal
Dec 21, 2023
Merged

V4.22.0 proposal#3899
CarlesDD merged 17 commits intov4.xfrom
v4.22.0-proposal

Conversation

@hoolioh
Copy link
Copy Markdown
Contributor

@hoolioh hoolioh commented Dec 21, 2023

Bug Fixes

Improvements

Features

Will be omitted from Release Notes:

juan-fernandez and others added 17 commits December 21, 2023 14:47
- specifically looking for exactly node 21
- this way we will have to fix it when node 22 LTS is released

---------

Co-authored-by: Thomas Hunter II <tlhunter@datadog.com>
Co-authored-by: Martin Disch <martindisch@gmail.com>
* default error tagging for next and pageLoad safeguarding
#3889)

* Configure parametric test to get the nodejs tracer in same way as system-tests
* Upload module skeleton.

* Blocking in apollo, very very first version

* Move graphql implementation to another module.

* Blocking for apollo-server-core, ugly but it works, lets find a better way

* Use real blocking data

* Set blocking to true.

* Throw before resolver execution in order to stop the operation's execution flow.

* Use HttpQueryError in apollo-server-core

* Blocking test in apollo-server-fastify

* Refactor graphql blocking.

* Remove previous implementation which only supported monitoring.
* Add new waf address in order to check the payload of every resolver.
* Use apm start resolver address instead of a new one.
* Remove mock and perform an actual call to the waf.

* Add non blocking graphql test

* Move abortController constructor to context creation.

This reduces the performance overhead due to just one instance is shared across the whole query exectution.

* Add pollo-server-express block tests

* Add unit tests.

* Add @apollo/server tests

* Update test rules for blocking by `graphql.server.resolver`

* Block with graphql templates data

* Add tests.

* Block with graphql data in graphql endpoint

* Fix tests.

* Execute @apollo/server and apollo-server-express tests

* Unify code in @apollo/server and apollo-server-core

* update comments

* Add appsec.blocked tag in blocked requests

* Add test with non graphql block response

* Tests for block with redirect

* Prevent creation of resolve span when it is blocked before the execution of the resolve code

* Refactor addResolver in order to get directives information.

* Add tests to block on directives.

* Add test for directives.

* Undo prevent creating resolve span

* Configurable graphql blocking json

* Refactor graphql

* Using resolver instead of resolvers.
* Change graphql channel name to be consistent with the others.

* Small changes in blocking

* Move resover information resolution to plugin.

* Revert "Move resover information resolution to plugin."

This reverts commit 7cc8561.

* Remove resolver information from context, pass it in a different field instead.

* Throw custom exception rather than send an empty array.

* Update packages/datadog-instrumentations/src/graphql.js

Co-authored-by: Ugaitz Urien <ugaitz.urien@datadoghq.com>

* Change a bit apollo-server-core instrumentation

* Protect Header map, if in future version it is moved/removed, prevent breaks

* Remove some duplicated code

* Update packages/datadog-instrumentations/src/apollo-server.js

Co-authored-by: Carles Capell <107924659+CarlesDD@users.noreply.github.com>

* Fix comments in the PR

* Fix PR comments.

* Fix some comments in the PR

* Move resolver information formatting to the plugin.

* Fix PR comments.

* Fix proper use of Promise.race.

---------

Co-authored-by: Ugaitz Urien <ugaitz.urien@datadoghq.com>
Co-authored-by: Carles Capell <107924659+CarlesDD@users.noreply.github.com>
* Add thread id to heap and wall profiles

* Allow generateLabels to be called without arguments

In wall profile, if generateLabels is called without arguments, return
thread labels.
* New RC ASM_API_SECURITY_SAMPLE_RATE capability

* Do not report ASM_API_SECURITY_SAMPLE_RATE capability if apiSecurity is not enabled

* Change Activation constants case

* Update ASM_API_SECURITY_SAMPLE_RATE capability when enabling RemoteConfig

* Apply same coertion logic as in config.js

* Clean up

* Do not turn off ASM_API_SECURITY_SAMPLE_RATE when disabling waf update

* Include api_security_sampler test case

* Fix test comment

* remove NOTE
* Ensure recording start time of next profile is the same as the recording end time of the current profile.
* Pass the start-end range to profilers so they can use it
* Use passed-in start-end instead of internal duration computations
* Use end date to cut off late events for the next profile
…t are Recorded as Errors When Using Node 20 (#3853)" (#3896)

This reverts commit 59c8ea4.
* github: suggest new issues use helpdesk instead

* remove deprecated bug report / feature request options
* Update waf bindings to 6.0.0.

* Pass graphql.server.resolver as ephemeral address type.

* Add test.
@github-actions
Copy link
Copy Markdown
Contributor

Overall package size

Self size: 5.78 MB
Deduped: 61.2 MB
No deduping: 61.96 MB

Dependency sizes

name version self size total size
@datadog/native-iast-taint-tracking 1.6.4 16.43 MB 16.44 MB
@datadog/native-appsec 6.0.0 14.48 MB 14.48 MB
@datadog/pprof 4.1.0 9.36 MB 10.21 MB
protobufjs 7.2.5 2.77 MB 6.56 MB
@datadog/native-iast-rewriter 2.2.2 2.29 MB 2.37 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.4.1 780.32 kB 780.32 kB
import-in-the-middle 1.4.2 41.4 kB 704.79 kB
pprof-format 2.0.7 588.12 kB 588.12 kB
msgpack-lite 0.1.26 201.16 kB 281.59 kB
opentracing 0.14.7 194.81 kB 194.81 kB
semver 7.5.4 93.4 kB 123.8 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.1.0 60.23 kB 60.23 kB
ignore 5.2.4 51.22 kB 51.22 kB
int64-buffer 0.1.10 49.18 kB 49.18 kB
istanbul-lib-coverage 3.2.0 29.34 kB 29.34 kB
lodash.uniq 4.5.0 25.01 kB 25.01 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.2 22.77 kB 22.77 kB
retry 0.13.1 18.85 kB 18.85 kB
lodash.kebabcase 4.1.1 17.75 kB 17.75 kB
node-abort-controller 3.1.1 16.89 kB 16.89 kB
lodash.pick 4.4.0 16.33 kB 16.33 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
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
Copy Markdown

codecov Bot commented Dec 21, 2023

Codecov Report

All modified and coverable lines are covered by tests ✅

❗ No coverage uploaded for pull request base (v4.x@bcd805b). Click here to learn what that means.

Additional details and impacted files
@@           Coverage Diff           @@
##             v4.x    #3899   +/-   ##
=======================================
  Coverage        ?   84.74%           
=======================================
  Files           ?      237           
  Lines           ?     9944           
  Branches        ?       33           
=======================================
  Hits            ?     8427           
  Misses          ?     1517           
  Partials        ?        0           

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

@hoolioh hoolioh marked this pull request as ready for review December 21, 2023 15:10
@hoolioh hoolioh requested a review from a team as a code owner December 21, 2023 15:10
Copy link
Copy Markdown
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.

looks from ci vis perspective. A nitpick:

civisibility: ignore pino error tests when node version is 21 (Fix pino tests #3878)

that's not a ci vis fix 😄 . I'd just put pino

Copy link
Copy Markdown
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.

Ok from profiling - thanks!

@CarlesDD CarlesDD merged commit de5d46b into v4.x Dec 21, 2023
@CarlesDD CarlesDD deleted the v4.22.0-proposal branch December 21, 2023 16:04
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.