newrelic 11.23.2 → 12.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/NEWS.md +111 -42
- package/README.md +31 -0
- package/THIRD_PARTY_NOTICES.md +280 -32
- package/index.js +1 -10
- package/lib/context-manager/create-context-manager.js +0 -11
- package/lib/feature_flags.js +1 -2
- package/lib/instrumentation/@node-redis/client.js +1 -1
- package/lib/instrumentation/amqplib/amqplib.js +4 -243
- package/lib/instrumentation/amqplib/channel-model.js +129 -0
- package/lib/instrumentation/amqplib/channel.js +70 -0
- package/lib/instrumentation/amqplib/utils.js +141 -0
- package/lib/instrumentation/aws-sdk/v3/sqs.js +17 -1
- package/lib/instrumentation/core/globals.js +0 -5
- package/lib/instrumentation/core/timers.js +1 -72
- package/lib/instrumentation/kafkajs/consumer.js +64 -48
- package/lib/instrumentation/kafkajs/index.js +13 -13
- package/lib/instrumentation/kafkajs/producer.js +68 -52
- package/lib/instrumentation/kafkajs/record-linking-metrics.js +17 -0
- package/lib/instrumentation/kafkajs/record-method-metric.js +21 -0
- package/lib/instrumentation/mongodb.js +9 -10
- package/lib/instrumentation/nextjs/next-server.js +178 -0
- package/lib/instrumentation/nextjs/nr-hooks.js +22 -0
- package/lib/instrumentation/nextjs/utils.js +71 -0
- package/lib/instrumentation/pino/pino.js +11 -2
- package/lib/instrumentation/redis.js +13 -59
- package/lib/instrumentations.js +1 -1
- package/lib/metrics/names.js +1 -2
- package/lib/shim/message-shim/consume.js +9 -4
- package/lib/shim/message-shim/index.js +7 -14
- package/lib/shim/message-shim/subscribe-consume.js +25 -6
- package/lib/shim/specs/params/queue-message.js +2 -0
- package/lib/spans/span-event.js +17 -11
- package/lib/spans/streaming-span-event.js +15 -13
- package/lib/symbols.js +1 -0
- package/load-externals.js +15 -0
- package/package.json +12 -11
- package/lib/context-manager/legacy-context-manager.js +0 -66
- package/lib/instrumentation/core/async-hooks.js +0 -132
- package/lib/instrumentation/director.js +0 -64
- package/lib/instrumentation/mongodb/v2-mongo.js +0 -118
- package/lib/instrumentation/mongodb/v3-mongo.js +0 -85
package/NEWS.md
CHANGED
|
@@ -1,45 +1,114 @@
|
|
|
1
|
-
###
|
|
2
|
-
|
|
3
|
-
####
|
|
4
|
-
|
|
5
|
-
*
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
*
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
*
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
*
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
1
|
+
### v12.1.0 (2024-08-12)
|
|
2
|
+
|
|
3
|
+
#### Bug fixes
|
|
4
|
+
|
|
5
|
+
* Pick log message from merging object in Pino instrumentation ([#2421](https://github.com/newrelic/node-newrelic/pull/2421)) ([599072b](https://github.com/newrelic/node-newrelic/commit/599072b43b77a8c11c9ef414b08dfe6e04bca9d2))
|
|
6
|
+
* Added TLS verification for Redis ([#2446](https://github.com/newrelic/node-newrelic/pull/2446)) ([9a16b70](https://github.com/newrelic/node-newrelic/commit/9a16b7016a943a0c2817ab2151eaa81f5ea19760))
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
#### Documentation
|
|
10
|
+
|
|
11
|
+
* Updated compatibility report ([#2440](https://github.com/newrelic/node-newrelic/pull/2440)) ([32abe5f](https://github.com/newrelic/node-newrelic/commit/32abe5f90d93d470737986b3bfe6c797915c4215))
|
|
12
|
+
* Updated examples to properly use specs ([#2422](https://github.com/newrelic/node-newrelic/pull/2422)) ([f7e8c58](https://github.com/newrelic/node-newrelic/commit/f7e8c5831305ac0bcb2c906ec176863552a083c4))
|
|
13
|
+
* Fixed typo in doc header ([#2433](https://github.com/newrelic/node-newrelic/pull/2433)) ([9726e23](https://github.com/newrelic/node-newrelic/commit/9726e231fe631623f882df38344df4db9ce67b70))
|
|
14
|
+
|
|
15
|
+
#### Miscellaneous chores
|
|
16
|
+
|
|
17
|
+
* Added entity relationship attributes to SQS segments ([#2436](https://github.com/newrelic/node-newrelic/pull/2436)) ([578aead](https://github.com/newrelic/node-newrelic/commit/578aead8c0b2d18dced4eaca54b19c769f398868))
|
|
18
|
+
* Converted agent unit tests to node:test ([#2414](https://github.com/newrelic/node-newrelic/pull/2414)) ([b32f793](https://github.com/newrelic/node-newrelic/commit/b32f7934fec5dc9e7b29dee5d1994ab180bb0c37))
|
|
19
|
+
* Fixed mongodb-esm tests in combination with security agent ([#2444](https://github.com/newrelic/node-newrelic/pull/2444)) ([5d617de](https://github.com/newrelic/node-newrelic/commit/5d617de99bc89b678b8c11aaebcad5dcacf0b5c3))
|
|
20
|
+
* Limited superagent tests to avoid new breaking release ([#2439](https://github.com/newrelic/node-newrelic/pull/2439)) ([f1dd8e7](https://github.com/newrelic/node-newrelic/commit/f1dd8e73b8329a075667f6696d2a27bc749e4e7a))
|
|
21
|
+
* Removed promise resolvers from callback based agent unit tests ([#2450](https://github.com/newrelic/node-newrelic/pull/2450)) ([3766895](https://github.com/newrelic/node-newrelic/commit/3766895cd7cc8145ba8eef6d49330e0d354158a1))
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
#### Tests
|
|
25
|
+
|
|
26
|
+
* Moved pkgVersion to collection-common to avoid a conflict with ESM tests ([#2438](https://github.com/newrelic/node-newrelic/pull/2438)) ([7260fa3](https://github.com/newrelic/node-newrelic/commit/7260fa36372877bb6f60637f8255312fcf207a0a))
|
|
27
|
+
* Restored mongodb-esm tests ([#2434](https://github.com/newrelic/node-newrelic/pull/2434)) ([67a12e3](https://github.com/newrelic/node-newrelic/commit/67a12e32c6deef0c7f8397ac75c369f3371519e8))
|
|
28
|
+
* Updated custom test reporter to only log failed tests when there are failures ([#2425](https://github.com/newrelic/node-newrelic/pull/2425)) ([baa37ec](https://github.com/newrelic/node-newrelic/commit/baa37ece0d027ca6d57fd5b52ceedfaa97ecbfaa))
|
|
29
|
+
* Updated tls redis tests to work with older versions of redis v4 ([#2454](https://github.com/newrelic/node-newrelic/pull/2454)) ([ffd9b17](https://github.com/newrelic/node-newrelic/commit/ffd9b177e85ed73963f88767e9d3e20c57ea372d))
|
|
30
|
+
|
|
31
|
+
### v12.0.0 (2024-07-31)
|
|
32
|
+
#### ⚠ BREAKING CHANGES
|
|
33
|
+
|
|
34
|
+
* Dropped support for Node.js 16
|
|
35
|
+
* Removed legacy context manager
|
|
36
|
+
* Removed support for `redis` < 2.6.0
|
|
37
|
+
* Removed instrumentation for `director`
|
|
38
|
+
* Updated `mongodb` instrumentation to drop support for versions 2 and 3
|
|
39
|
+
|
|
40
|
+
#### Features
|
|
41
|
+
|
|
42
|
+
* Dropped support for Node.js 16 ([#2394](https://github.com/newrelic/node-newrelic/pull/2394)) ([1870010](https://github.com/newrelic/node-newrelic/commit/1870010a1d7dc417fc03ae526a9709e382b3fe1f))
|
|
43
|
+
* Removed legacy context manager ([#2404](https://github.com/newrelic/node-newrelic/pull/2404)) ([321244c](https://github.com/newrelic/node-newrelic/commit/321244c357bc5dd9b4aeefc308cda5e80b8012b0))
|
|
44
|
+
* Removed support for `redis` < 2.6.0 ([#2405](https://github.com/newrelic/node-newrelic/pull/2405)) ([e2c0a31](https://github.com/newrelic/node-newrelic/commit/e2c0a31b5230e0ffbdc3d4567619190570b7167c))
|
|
45
|
+
* Removed instrumentation for `director` ([#2402](https://github.com/newrelic/node-newrelic/pull/2402)) ([1b355e7](https://github.com/newrelic/node-newrelic/commit/1b355e733aef0e14c5f4cb2899642a3d5b6f18ce))
|
|
46
|
+
* Added `server.address` to amqplib spans ([#2406](https://github.com/newrelic/node-newrelic/pull/2406)) ([09636a4](https://github.com/newrelic/node-newrelic/commit/09636a4ce90969e7aea229ef008bd35f57e09217))
|
|
47
|
+
* Updated `mongodb` instrumentation to drop support for versions 2 and 3 ([#2398](https://github.com/newrelic/node-newrelic/pull/2398)) ([a0ae32a](https://github.com/newrelic/node-newrelic/commit/a0ae32a6a61112e0473d477075543485d02313cf))
|
|
48
|
+
* Migrated instrumentation for `next` into agent ([#2409](https://github.com/newrelic/node-newrelic/pull/2409)) ([b55d8e1](https://github.com/newr elic/node-newrelic/commit/b55d8e1ca09e6055ea09f4fcd773a05245e7203f))
|
|
49
|
+
* You no longer need to load Next.js instrumentation via `@newrelic/next`.
|
|
50
|
+
* Instead you must load the agent via `NODE_OPTIONS='-r newrelic' next start`
|
|
51
|
+
|
|
52
|
+
#### Documentation
|
|
53
|
+
|
|
54
|
+
* Updated compatibility report ([#2401](https://github.com/newrelic/node-newrelic/pull/2401)) ([a53085d](https://github.com/newrelic/node-newrelic/commit/a53085ddce2f2d7a4c9288fbf63fbf82436fb15f))
|
|
55
|
+
|
|
56
|
+
#### Miscellaneous chores
|
|
57
|
+
|
|
58
|
+
* Added test configs for defined targets in the aws test suite ([#2403](https://github.com/newrelic/node-newrelic/pull/2403)) ([cf514d9](https://github.com/newrelic/node-newrelic/commit/cf514d97b82889b14a342cbded630bae73992c35))
|
|
59
|
+
* Added producer and consumer metrics to kafkajs instrumentation ([#2407](https://github.com/newrelic/node-newrelic/pull/2407)) ([41c1cc6](https://github.com/newrelic/node-newrelic/commit/41c1cc6d9815a1b89a7ab043b5da5f032969a87e))
|
|
60
|
+
* Switched to using Node built-in test runner ([#2387](https://github.com/newrelic/node-newrelic/pull/2387)) ([b9f64b7](https://github.com/newrelic/node-newrelic/commit/b9f64b76b8777fc790a4694a95318f401a56abdd))
|
|
61
|
+
* Updated `@newrelic/native-metrics` to 11.0.0 ([#2412](https://github.com/newrelic/node-newrelic/pull/2412)) ([aef69e2](https://github.com/newrelic/node-newrelic/commit/aef69e28cc3ead2079cfc0bdf9bde74129a3711f))
|
|
62
|
+
* Updated dashboard links in developer-setup.md ([#2397](https://github.com/newrelic/node-newrelic/pull/2397)) ([16866da](https://github.com/newrelic/node-newrelic/commit/16866da381366ad848ea06be44fd838d57c9fb67))
|
|
63
|
+
* Verified MySQL host:port metric is recorded ([#2400](https://github.com/newrelic/node-newrelic/pull/2400)) ([74176f7](https://github.com/newrelic/node-newrelic/commit/74176f77f70247a3cf65b1b49c5414279b4eeca6))
|
|
64
|
+
|
|
65
|
+
#### Tests
|
|
66
|
+
|
|
67
|
+
* Removed mongodb-esm tests as they are not atomic and conflicting with mongodb tests in CI ([#2416](https://github.com/newrelic/node-newrelic/pull/2416)) ([e587b9d](https://github.com/newrelic/node-newrelic/commit/e587b9dcb795cca3c29c6e0da18770401c3085a0))
|
|
68
|
+
* Updated minimum version of lesser used versions of 3rd party libraries ([#2399](https://github.com/newrelic/node-newrelic/pull/2399)) ([ef8c006](https://github.com/newrelic/node-newrelic/commit/ef8c00674c22b4794c6cee823d46ad9db7d67fed))
|
|
69
|
+
|
|
70
|
+
### v11.23.2 (2024-07-22)
|
|
71
|
+
|
|
72
|
+
#### Features
|
|
73
|
+
|
|
74
|
+
* Added support for `fs.glob` in Node 22+ ([#2369](https://github.com/newrelic/node-newrelic/pull/2369)) ([1791a4e](https://github.com/newrelic/node-newrelic/commit/1791a4ef4a31e36757c47a9947ef8840fdd995c2))
|
|
75
|
+
|
|
76
|
+
#### Bug fixes
|
|
77
|
+
|
|
78
|
+
* Updated aws-sdk v3 instrumentation to load custom middleware last to properly get the external http span to add `aws.*` attributes ([#2382](https://github.com/newrelic/node-newrelic/pull/2382)) ([751801b](https://github.com/newrelic/node-newrelic/commit/751801be814343c9ddcee3dd7e83f87a1c6786d4))
|
|
79
|
+
* Updated cassandra-driver instrumentation to properly trace promise based executions ([#2351](https://github.com/newrelic/node-newrelic/pull/2351)) ([bab9a8b](https://github.com/newrelic/node-newrelic/commit/bab9a8bab4ab6af8efa70d8559bdcc7ca6f5df32))
|
|
80
|
+
|
|
81
|
+
#### Documentation
|
|
82
|
+
|
|
83
|
+
* Removed examples/api/ ([#2381](https://github.com/newrelic/node-newrelic/pull/2381)) ([fb964de](https://github.com/newrelic/node-newrelic/commit/fb964de863f8989161f9a780f9eddc6e3ec91138))
|
|
84
|
+
* Removed out of date `ROADMAP_Node.md` from root of project ([#2367](https://github.com/newrelic/node-newrelic/pull/2367)) ([4be870c](https://github.com/newrelic/node-newrelic/commit/4be870c758d9b931866ef3e6781d01bf176671a9))
|
|
85
|
+
* Updated compatibility report ([#2345](https://github.com/newrelic/node-newrelic/pull/2345)) ([f08adc3](https://github.com/newrelic/node-newrelic/commit/f08adc3a30bdf3e5d23bd00efeb3b16ac06cd3e5))
|
|
86
|
+
|
|
87
|
+
#### Miscellaneous chores
|
|
88
|
+
|
|
89
|
+
* Always upload status logs in compatibility report CI ([#2341](https://github.com/newrelic/node-newrelic/pull/2341)) ([b3f1ee3](https://github.com/newrelic/node-newrelic/commit/b3f1ee3fe40c38c7484661dfb2e599df4f31003e))
|
|
90
|
+
|
|
91
|
+
#### Tests
|
|
92
|
+
|
|
93
|
+
* Removed `server.start` in grpc tests as it is deprecated and no longer needed ([#2372](https://github.com/newrelic/node-newrelic/pull/2372)) ([d212b15](https://github.com/newrelic/node-newrelic/commit/d212b15c929ebca22881f3d41a8d7f99033847a8))
|
|
94
|
+
* Updated benchmark test results to output result files ([#2350](https://github.com/newrelic/node-newrelic/pull/2350)) ([1b51a68](https://github.com/newrelic/node-newrelic/commit/1b51a68200dae14b865a6db06d62655a25a62c2d))
|
|
95
|
+
|
|
96
|
+
#### Continuous integration
|
|
97
|
+
|
|
98
|
+
* Added benchmark test GitHub Action ([#2366](https://github.com/newrelic/node-newrelic/pull/2366)) ([afd3ab4](https://github.com/newrelic/node-newrelic/commit/afd3ab48611ec8409be1472ebbc63db24cff8e73))
|
|
99
|
+
* Increased the limit of installs from 2 to a bigger number for versioned tests ([#2346](https://github.com/newrelic/node-newrelic/pull/2346)) ([f85a385](https://github.com/newrelic/node-newrelic/commit/f85a38524f1d41e82b2c5085c41d79d1263b63c3))
|
|
100
|
+
* Updated `bin/create-docs-pr` to create an empty array if changelog.json is missing security ([#2348](https://github.com/newrelic/node-newrelic/pull/2348)) ([7d5368c](https://github.com/newrelic/node-newrelic/commit/7d5368ce873affbf2593bd6b1cc32259da852e1d))
|
|
101
|
+
|
|
102
|
+
### v11.23.1 (2024-07-11)
|
|
103
|
+
|
|
104
|
+
#### Bug fixes
|
|
105
|
+
|
|
106
|
+
* Updated redis v4 instrumentation to work with transactions(multi/exec) ([#2343](https://github.com/newrelic/node-newrelic/pull/2343)) ([39eb842](https://github.com/newrelic/node-newrelic/commit/39eb8421b84f7fe298acf5c9c89de31ee0cc2604))
|
|
107
|
+
|
|
108
|
+
#### Documentation
|
|
109
|
+
|
|
110
|
+
* Updated compatibility report ([#2342](https://github.com/newrelic/node-newrelic/pull/2342)) ([5c9e3e6](https://github.com/newrelic/node-newrelic/commit/5c9e3e6bfa8a388c7dd071ecb0231b069f065645))
|
|
111
|
+
|
|
43
112
|
### v11.23.0 (2024-07-10)
|
|
44
113
|
|
|
45
114
|
#### Features
|
package/README.md
CHANGED
|
@@ -61,6 +61,37 @@ If you cannot control how your program is run, you can load the `newrelic` modul
|
|
|
61
61
|
/* ... the rest of your program ... */
|
|
62
62
|
```
|
|
63
63
|
|
|
64
|
+
## Next.js instrumentation
|
|
65
|
+
**Note**: The minimum supported Next.js version is [12.0.9](https://github.com/vercel/next.js/releases/tag/v12.0.9). If you are using Next.js middleware the minimum supported version is [12.2.0](https://github.com/vercel/next.js/releases/tag/v12.2.0).
|
|
66
|
+
|
|
67
|
+
The New Relic Node.js agent provides instrumentation for Next.js The instrumentation provides telemetry for server-side rendering via [getServerSideProps](https://nextjs.org/docs/basic-features/data-fetching/get-server-side-props), [middleware](https://nextjs.org/docs/middleware), and New Relic transaction naming for both page and server requests. It does not provide any instrumentation for actions occurring during build or in client-side code. If you want telemetry data on actions occurring on the client (browser), you can [inject the browser agent](./documentation/nextjs/faqs/browser-agent.md).
|
|
68
|
+
|
|
69
|
+
Here are documents for more in-depth explanations about [transaction naming](./documentation/nextjs/transactions.md), and [segments/spans](./documentation/nextjs/segments-and-spans.md).
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
### Setup
|
|
73
|
+
Typically you are running a Next.js app with the `next` cli and you must load the agent via `NODE_OPTIONS`:
|
|
74
|
+
|
|
75
|
+
```sh
|
|
76
|
+
NODE_OPTIONS='-r newrelic' next start
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
If you are having trouble getting the `newrelic` package to instrument Next.js, take a look at our [FAQs](./documentation/nextjs/faqs/README.md).
|
|
80
|
+
|
|
81
|
+
### Next.js example projects
|
|
82
|
+
The following example applications show how to load the `newrelic` instrumentation, inject browser agent, and handle errors:
|
|
83
|
+
|
|
84
|
+
* [Pages Router example](https://github.com/newrelic/newrelic-node-examples/tree/58f760e828c45d90391bda3f66764d4420ba4990/nextjs-legacy)
|
|
85
|
+
* [App Router example](https://github.com/newrelic/newrelic-node-examples/tree/58f760e828c45d90391bda3f66764d4420ba4990/nextjs-app-router)
|
|
86
|
+
|
|
87
|
+
### Custom Next.js servers
|
|
88
|
+
|
|
89
|
+
If you are using next as a [custom server](https://nextjs.org/docs/advanced-features/custom-server), you're probably not running your application with the `next` CLI. In that scenario we recommend running the Next.js instrumentation as follows.
|
|
90
|
+
|
|
91
|
+
```sh
|
|
92
|
+
node -r newrelic your-program.js
|
|
93
|
+
```
|
|
94
|
+
|
|
64
95
|
## ECMAScript Modules
|
|
65
96
|
|
|
66
97
|
If your application is written with `import` and `export` statements in javascript, you are using [ES Modules](https://nodejs.org/api/esm.html#modules-ecmascript-modules) and must bootstrap the agent in a different way.
|