newrelic 14.0.0 → 14.1.1

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.
Files changed (72) hide show
  1. package/NEWS.md +139 -74
  2. package/README.md +3 -32
  3. package/THIRD_PARTY_NOTICES.md +554 -251
  4. package/api.js +10 -0
  5. package/lib/collector/http-agents.js +33 -5
  6. package/lib/collector/remote-method.js +8 -19
  7. package/lib/config/index.js +1 -0
  8. package/lib/instrumentations.js +0 -3
  9. package/lib/logger.js +2 -1
  10. package/lib/otel/metrics/generate-proxy-agent-factory.js +31 -0
  11. package/lib/otel/metrics/index.js +17 -6
  12. package/lib/otel/metrics/nr-exporter.js +52 -0
  13. package/lib/otel/metrics/nr-proxying-delegate.js +69 -0
  14. package/lib/otel/metrics/nr-proxying-serializer.js +64 -0
  15. package/lib/otel/traces/constants.js +7 -0
  16. package/lib/otel/traces/rules.js +62 -16
  17. package/lib/otel/traces/span-processor.js +4 -1
  18. package/lib/otel/traces/transformation-rules/100-OtelHttpServer1_23.json +66 -0
  19. package/lib/otel/traces/transformation-rules/101-OtelHttpServerNextjs1_20.json +45 -0
  20. package/lib/otel/traces/transformation-rules/102-OtelHttpServer1_20.json +54 -0
  21. package/lib/otel/traces/transformation-rules/102-OtelRpcServer1_20.json +44 -0
  22. package/lib/otel/traces/transformation-rules/199-FallbackServer.json +17 -0
  23. package/lib/otel/traces/transformation-rules/200-OtelMessagingConsumer1_30.json +57 -0
  24. package/lib/otel/traces/transformation-rules/201-OtelMessagingConsumer1_24.json +51 -0
  25. package/lib/otel/traces/transformation-rules/202-OtelMessagingConsumer1_17.json +49 -0
  26. package/lib/otel/traces/transformation-rules/299-FallbackConsumer.json +18 -0
  27. package/lib/otel/traces/transformation-rules/300-OtelDbClientRedis1_40.json +41 -0
  28. package/lib/otel/traces/transformation-rules/301-OtelDbClientRedis1_24.json +41 -0
  29. package/lib/otel/traces/transformation-rules/302-OtelDbClientMongo1_40.json +47 -0
  30. package/lib/otel/traces/transformation-rules/303-OtelDbClientMongo1_24.json +47 -0
  31. package/lib/otel/traces/transformation-rules/304-OtelDbClient1_40.json +43 -0
  32. package/lib/otel/traces/transformation-rules/305-OtelDbClient1_24.json +43 -0
  33. package/lib/otel/traces/transformation-rules/306-OtelDbClientRedis1_17.json +46 -0
  34. package/lib/otel/traces/transformation-rules/307-OtelDbClientMongo1_17.json +47 -0
  35. package/lib/otel/traces/transformation-rules/308-OtelDbClientDynamo1_40.json +44 -0
  36. package/lib/otel/traces/transformation-rules/309-OtelDbClientDynamo1_17.json +49 -0
  37. package/lib/otel/traces/transformation-rules/310-OtelDbClient1_17.json +43 -0
  38. package/lib/otel/traces/transformation-rules/311-OtelDbClientPrisma1_40.json +28 -0
  39. package/lib/otel/traces/transformation-rules/312-OtelHttpClient1_23.json +66 -0
  40. package/lib/otel/traces/transformation-rules/313-OtelHttpClient1_17.json +66 -0
  41. package/lib/otel/traces/transformation-rules/314-OtelRpcClient1_23.json +59 -0
  42. package/lib/otel/traces/transformation-rules/315-OtelLambdaClient1_17.json +36 -0
  43. package/lib/otel/traces/transformation-rules/316-OtelRpcClient1_17.json +59 -0
  44. package/lib/otel/traces/transformation-rules/399-FallbackClient.json +16 -0
  45. package/lib/otel/traces/transformation-rules/400-Producer_1_30.json +46 -0
  46. package/lib/otel/traces/transformation-rules/401-Producer_1_24.json +46 -0
  47. package/lib/otel/traces/transformation-rules/402-ProducerSQS_1_17.json +61 -0
  48. package/lib/otel/traces/transformation-rules/403-Producer_1_17.json +40 -0
  49. package/lib/otel/traces/transformation-rules/499-FallbackProducer.json +16 -0
  50. package/lib/otel/traces/transformation-rules/999-Fallback.json +11 -0
  51. package/lib/otel/traces/transformation-rules/index.js +52 -0
  52. package/lib/subscriber-configs.js +2 -0
  53. package/lib/subscribers/hapi/config.js +65 -0
  54. package/lib/subscribers/hapi/decorate.js +37 -0
  55. package/lib/subscribers/hapi/ext.js +77 -0
  56. package/lib/subscribers/hapi/render.js +28 -0
  57. package/lib/subscribers/hapi/route.js +73 -0
  58. package/lib/subscribers/koa/config.js +28 -0
  59. package/lib/subscribers/koa/middleware-wrapper.js +58 -0
  60. package/lib/subscribers/koa/use.js +86 -0
  61. package/lib/subscribers/middleware-wrapper.js +44 -24
  62. package/lib/subscribers/middleware.js +2 -2
  63. package/lib/symbols.js +0 -4
  64. package/lib/util/label-parser.js +3 -2
  65. package/lib/util/logger.js +35 -1
  66. package/package.json +15 -17
  67. package/lib/instrumentation/@hapi/hapi.js +0 -248
  68. package/lib/instrumentation/@hapi/vision.js +0 -44
  69. package/lib/instrumentation/koa/instrumentation.js +0 -177
  70. package/lib/instrumentation/koa/nr-hooks.js +0 -23
  71. package/lib/instrumentation/koa/router-instrumentation.js +0 -121
  72. package/lib/otel/traces/transformation-rules.json +0 -1371
package/NEWS.md CHANGED
@@ -1,77 +1,142 @@
1
- ### v14.0.0 (2026-05-18)
2
- #### ⚠ BREAKING CHANGES
3
-
4
- This version of the Node.js agent is a SemVer MAJOR update and contains the following breaking changes. MAJOR versions may drop support for language runtimes that have reached End-of-Life according to the maintainer. Additionally, MAJOR versions may drop support for and remove certain instrumentation. For more details on these changes please see the [migration guide](https://docs.newrelic.com/docs/apm/agents/nodejs-agent/installation-configuration/update-nodejs-agent/).
5
-
6
- * Dropped support for Node.js 20
7
- * Migrated `@apollo/sever` instrumentation from a plugin(`@newrelic/apollo-server-plugin`) to traditional instrumentation
8
- * Removed Cross Application Tracing(CAT) functionality
9
- * Removed support for License, Application, and Security Policies(LASP)
10
- * Removed instrumentation for `koa-route`
11
- * Removed instrumentation for `koa-router`
12
- * Removed `shim.prefixRouteParameters` as the logic was previously moved to when a transaction ends
13
- * Removed creating `MySQL Pool#query` segments
14
- * Removed `shim.argsToArray`
15
- * Updated minimum supported version of `@nestjs/cli` and `@nestjs/core` to `10.0.0`
16
- * Updated minimum supported version of `next` to 14
17
- * Updated minimum supported version of `bluebird` to `3.0.0`
18
- * Updated minimum supported version of `mysql2` to `3.0.0`
19
- * Updated minimum supported version for `cassandra-driver` to `4.0.0`
20
- * Dropped support for `fastify` 3.x
21
- * Updated `config.distributed_tracing.exclude_newrelic_header` to be set to `true` by default
22
-
23
- #### Features
24
-
25
- * Dropped support for `fastify` 3.x ([#3980](https://github.com/newrelic/node-newrelic/pull/3980)) ([720979b](https://github.com/newrelic/node-newrelic/commit/720979bccb65c93a143d1e069a32904bff78f02b))
26
- * Dropped support for Node.js 20 ([#3980](https://github.com/newrelic/node-newrelic/pull/3980)) ([5306223](https://github.com/newrelic/node-newrelic/commit/530622314532e3c7eb4d8c3685e0b1974df61b8f))
27
- * Migrated `@apollo/sever` instrumentation from a plugin(`@newrelic/apollo-server-plugin`) to traditional instrumentation ([#3980](https://github.com/newrelic/node-newrelic/pull/3980)) ([736e0a4](https://github.com/newrelic/node-newrelic/commit/736e0a40b78224e32e263a3aa0264c150d29982d))
28
- * Removed `shim.argsToArray` ([#3980](https://github.com/newrelic/node-newrelic/pull/3980)) ([9183d29](https://github.com/newrelic/node-newrelic/commit/9183d29c456aba6ad003bc0a365c14d9b5d3044c))
29
- * Removed `shim.prefixRouteParameters` as the logic was previously moved to when a transaction ends ([#3980](https://github.com/newrelic/node-newrelic/pull/3980)) ([9f1408e](https://github.com/newrelic/node-newrelic/commit/9f1408e26b168733644b3c9160dc45726c4b0034))
30
- * Removed creating `MySQL Pool#query` segments ([#3980](https://github.com/newrelic/node-newrelic/pull/3980)) ([1d5a6dd](https://github.com/newrelic/node-newrelic/commit/1d5a6dde7f5c1280079cdca859cc5a2fc3121556))
31
- * Removed Cross Application Tracing(CAT) functionality ([#3980](https://github.com/newrelic/node-newrelic/pull/3980)) ([a87ed4d](https://github.com/newrelic/node-newrelic/commit/a87ed4dbd3aad072de81475601844efebd8353ac))
32
- * Removed instrumentation for `koa-route` ([#3980](https://github.com/newrelic/node-newrelic/pull/3980)) ([40c10d9](https://github.com/newrelic/node-newrelic/commit/40c10d90fdebd08dba7bb8e99856def93093267a))
33
- * Removed instrumentation for `koa-router` ([#3980](https://github.com/newrelic/node-newrelic/pull/3980)) ([038ecc7](https://github.com/newrelic/node-newrelic/commit/038ecc749a0fd5d2cdd0ba6b5b0c9537f04a3208))
34
- * Removed support for License, Application, and Security Policies(LASP) ([#3980](https://github.com/newrelic/node-newrelic/pull/3980)) ([bc09485](https://github.com/newrelic/node-newrelic/commit/bc094850bd18daf6be047615ad71c4dc13a7ec85))
35
- * Updated `config.distributed_tracing.exclude_newrelic_header` to be set to `true` by default ([#3980](https://github.com/newrelic/node-newrelic/pull/3980)) ([774ce08](https://github.com/newrelic/node-newrelic/commit/774ce0805ddefd4a6e89d8635183d31e2d7e1d3a))
36
- * Updated minimum supported version for `cassandra-driver` to `4.0.0` ([#3980](https://github.com/newrelic/node-newrelic/pull/3980)) ([419337a](https://github.com/newrelic/node-newrelic/commit/419337a78d126467cbf4fc70b94ec293fb919bbf))
37
- * Updated minimum supported version of `@nestjs/cli` and `@nestjs/core` to `10.0.0` ([#3980](https://github.com/newrelic/node-newrelic/pull/3980)) ([120e6de](https://github.com/newrelic/node-newrelic/commit/120e6deef05c940baea52656dd04fdd992e9061d))
38
- * Updated minimum supported version of `bluebird` to `3.0.0` ([#3980](https://github.com/newrelic/node-newrelic/pull/3980)) ([369f920](https://github.com/newrelic/node-newrelic/commit/369f920a86b81980552fe97c708b1aeb3a70771f))
39
- * Updated minimum supported version of `mysql2` to `3.0.0` ([#3980](https://github.com/newrelic/node-newrelic/pull/3980)) ([2861406](https://github.com/newrelic/node-newrelic/commit/2861406c6d9d41f71dab2332d1fd22c27ddfda7c))
40
- * Updated minimum supported version of `next` to 14 ([#3980](https://github.com/newrelic/node-newrelic/pull/3980)) ([80c5c0c](https://github.com/newrelic/node-newrelic/commit/80c5c0ca1ffdf2c2fa6d4abf74c8b7c3e2024a2e))
41
-
42
- #### Code refactoring
43
-
44
- * Updated how exclusive time and trace total time is calculated ([#3980](https://github.com/newrelic/node-newrelic/pull/3980)) ([b227ed6](https://github.com/newrelic/node-newrelic/commit/b227ed6975b077a8e16cffafc781a14d55636059))
45
- * Updated instances of `tracer.bindFunction` with `tracer.runInContext` to improve performance in hot paths ([#3811](https://github.com/newrelic/node-newrelic/pull/3811)) ([5d77085](https://github.com/newrelic/node-newrelic/commit/5d77085b89e98bb1e09a9206a5d5656cdc410c2d))
46
-
47
- #### Documentation
48
-
49
- * Updated compatibility report ([#3990](https://github.com/newrelic/node-newrelic/pull/3990)) ([f3bb380](https://github.com/newrelic/node-newrelic/commit/f3bb380770e575e1ef3600e6601ddbf944b189ea))
50
-
51
- #### Miscellaneous chores
52
-
53
- * Removed `husky` in lieu of git hooks, added security hardened options to `npm install` ([#3988](https://github.com/newrelic/node-newrelic/pull/3988)) ([e3a7dda](https://github.com/newrelic/node-newrelic/commit/e3a7ddaee58f393cf347d812fed6b4c6ab1505f0))
54
- * Updated production dependencies to the latest ([#3996](https://github.com/newrelic/node-newrelic/pull/3996)) ([b710bac](https://github.com/newrelic/node-newrelic/commit/b710bacff2231c8038b792ac4c7a570991566835))
55
-
56
- #### Tests
57
-
58
- * Added `minSupported` to the nest js versioned tests package.json to ensure the compatibility report will show we support `@nestjs/core` ([#3982](https://github.com/newrelic/node-newrelic/pull/3982)) ([bfa4aa1](https://github.com/newrelic/node-newrelic/commit/bfa4aa1d7b1fa60b8ac0da221f132124fb31ea6d))
59
- * Added prisma 7 tests ([#3980](https://github.com/newrelic/node-newrelic/pull/3980)) ([116ee9c](https://github.com/newrelic/node-newrelic/commit/116ee9cd006d378afba1922d8daa27e213d1f6ab))
60
- * Moved versioned test runner code from `@newrelic/test-utilties` to agent ([#3980](https://github.com/newrelic/node-newrelic/pull/3980)) ([d4f9a0c](https://github.com/newrelic/node-newrelic/commit/d4f9a0ce27364b7cfb723fa6a7c56a5ccdc07b68))
61
- * Removed `@newrelic/test-utilities` ([#3980](https://github.com/newrelic/node-newrelic/pull/3980)) ([1751147](https://github.com/newrelic/node-newrelic/commit/1751147503c9ff971208c2977912d7298e9e923f))
62
- * Decrease smoke-like esm tests' sample size ([#3986](https://github.com/newrelic/node-newrelic/pull/3986)) ([40669fb](https://github.com/newrelic/node-newrelic/commit/40669fbc157d65b53a4e5b7c22061ede7f26e630))
63
- * Fixed `test/lib/get-package-version.js` ([#3993](https://github.com/newrelic/node-newrelic/pull/3993)) ([5d31f08](https://github.com/newrelic/node-newrelic/commit/5d31f08fb542f7b58bf89457f8a30255511ee9e0))
64
- * Fixed version lookup issue in aws-sdk-v3 tests ([#3992](https://github.com/newrelic/node-newrelic/pull/3992)) ([7be3f4a](https://github.com/newrelic/node-newrelic/commit/7be3f4ab5a69fa7563752f584704e59cf6a863d2))
65
- * Restructure `aws-sdk-v3` test runner to use `groupedDependencies` ([#3984](https://github.com/newrelic/node-newrelic/pull/3984)) ([fc67490](https://github.com/newrelic/node-newrelic/commit/fc674909e176f0f5305a0798c14d3c8447e58155))
66
- * Updated a few versioned test stanzas to reduce the number of combinations it runs ([#3991](https://github.com/newrelic/node-newrelic/pull/3991)) ([d606305](https://github.com/newrelic/node-newrelic/commit/d6063055ebd034deabd2f2c3f1acba8162a5bd44))
67
-
68
- #### Continuous integration
69
-
70
- * Added `contents: write` to `post-release` to allow commit/push of api docs ([#3978](https://github.com/newrelic/node-newrelic/pull/3978)) ([90c4e61](https://github.com/newrelic/node-newrelic/commit/90c4e61ac304715dc0848aad091ec1725e057367))
71
- * Updated remaining actions so they are running on Node 24 ([#3980](https://github.com/newrelic/node-newrelic/pull/3980)) ([ea21934](https://github.com/newrelic/node-newrelic/commit/ea21934a7b638855610ff193e88d15f8b910d8a8))
72
- * Updated version of `actions/download-artifact` to v8 ([#3980](https://github.com/newrelic/node-newrelic/pull/3980)) ([54a58b9](https://github.com/newrelic/node-newrelic/commit/54a58b95bb8b5a15d7f7b340a9c8da2a3d3e88a9))
73
- * Updated versions of actions to ensure they are running on node 24 ([#3980](https://github.com/newrelic/node-newrelic/pull/3980)) ([6302002](https://github.com/newrelic/node-newrelic/commit/630200223d03e39249e359563727900a70ce15cf))
74
-
1
+ ### v14.1.1 (2026-06-23)
2
+
3
+ #### Documentation
4
+
5
+ * Removed outdated Next.js documentation in repo ([#4060](https://github.com/newrelic/node-newrelic/pull/4060)) ([185bb66](https://github.com/newrelic/node-newrelic/commit/185bb66c6b8c8ddc26c934adccc28bf47e9ddfd9))
6
+ * Updated compatibility report ([#4047](https://github.com/newrelic/node-newrelic/pull/4047)) ([25cbd38](https://github.com/newrelic/node-newrelic/commit/25cbd38f8da143c7c0010634b0282f2409cc0631))
7
+
8
+ #### Miscellaneous chores
9
+
10
+ * Added proxy config support to OTEL metrics ([#4041](https://github.com/newrelic/node-newrelic/pull/4041)) ([6c04b8a](https://github.com/newrelic/node-newrelic/commit/6c04b8ab780006ff3e15406a56e9efafa79b1509))
11
+ * Added supportability metrics to OTEL metrics export ([#4051](https://github.com/newrelic/node-newrelic/pull/4051)) ([db6e4e3](https://github.com/newrelic/node-newrelic/commit/db6e4e364e61deb5da33a25d9ce13fb950c01162))
12
+ * Updated min version of `@opentelemetry` `0.x` packages to `^0.219.0` ([#4065](https://github.com/newrelic/node-newrelic/pull/4065)) ([3f58ad0](https://github.com/newrelic/node-newrelic/commit/3f58ad010592fe9909a210f7688bce6f4e72c188))
13
+
14
+
15
+ ### v14.1.0 (2026-06-02)
16
+
17
+ #### Features
18
+
19
+ * Added support for native Next.js OTEL instrumentation via the Hybrid Agent ([#4040](https://github.com/newrelic/node-newrelic/pull/4040)) ([1944f39](https://github.com/newrelic/node-newrelic/commit/1944f395de1a1f23a535b0188502eb257beb8c6a))
20
+
21
+ #### Bug fixes
22
+
23
+ * Updated label parser to handle empty values in an object key ([#4004](https://github.com/newrelic/node-newrelic/pull/4004)) ([73c00d7](https://github.com/newrelic/node-newrelic/commit/73c00d746822fa50e763d38302e6307b3e638dc1))
24
+
25
+ #### Code refactoring
26
+
27
+ * Migrate `@hapi/hapi` and `@hapi/vision` to subscriber-based ([#3995](https://github.com/newrelic/node-newrelic/pull/3995)) ([54c60a8](https://github.com/newrelic/node-newrelic/commit/54c60a841346737f6e6b42c4910381c0b98552a2))
28
+ * Refactored `koa` instrumentation to subscribe to events emitted ([#4016](https://github.com/newrelic/node-newrelic/pull/4016)) ([e1f6c27](https://github.com/newrelic/node-newrelic/commit/e1f6c27897e3e907d1d9768d73faf0a78f72961b))
29
+ * Updated MiddlewareWrapper `maybeHandleError` to only mark error as handled if there was a previously stored error ([#4032](https://github.com/newrelic/node-newrelic/pull/4032)) ([1b21cc8](https://github.com/newrelic/node-newrelic/commit/1b21cc89ce82055bde96815c8ac216d4af008684))
30
+
31
+ #### Documentation
32
+
33
+ * Removed linked to `@newrelic/apollo-server-plugin` as instrumentation was merged into agent ([#4003](https://github.com/newrelic/node-newrelic/pull/4003)) ([9afd9cb](https://github.com/newrelic/node-newrelic/commit/9afd9cb8d721e175f60d31dc7384b752632f9ae5))
34
+ * Moved `apollo-server` docs to the docs website ([#3994](https://github.com/newrelic/node-newrelic/pull/3994)) ([11ca2ae](https://github.com/newrelic/node-newrelic/commit/11ca2ae419ebc616bed4d072641cedb42b48be87))
35
+ * Updated compatibility report ([#4028](https://github.com/newrelic/node-newrelic/pull/4028)) ([b16ad6e](https://github.com/newrelic/node-newrelic/commit/b16ad6e2dfee69e424f1e54ee7f7c69207842339)) ([#4014](https://github.com/newrelic/node-newrelic/pull/4014)) ([3efa1ff](https://github.com/newrelic/node-newrelic/commit/3efa1ff3af27178c410ac7332e714f1d126d07dd)) ([#4002](https://github.com/newrelic/node-newrelic/pull/4002)) ([33a8236](https://github.com/newrelic/node-newrelic/commit/33a82361674d29e53db9b699048c7a7970445d7c))
36
+
37
+ #### Miscellaneous chores
38
+
39
+ * Deprecate `instrumentLoadedModule` API ([#4034](https://github.com/newrelic/node-newrelic/pull/4034)) ([306ff86](https://github.com/newrelic/node-newrelic/commit/306ff86e4ffeaaa094c3ee3f93e9248c74d3d4d1))
40
+ * Added audit logging for OTEL metrics ([#4018](https://github.com/newrelic/node-newrelic/pull/4018)) ([494c836](https://github.com/newrelic/node-newrelic/commit/494c8369176994c01e75b5bf1f28ff471654d31a))
41
+ * Added OTEL rule to support Prisma 7 ([#4013](https://github.com/newrelic/node-newrelic/pull/4013)) ([c142c60](https://github.com/newrelic/node-newrelic/commit/c142c60162cb9409946d8a1babb6f59cd569f6ea))
42
+ * Fix ordering of OTEL rules ([#4025](https://github.com/newrelic/node-newrelic/pull/4025)) ([150476a](https://github.com/newrelic/node-newrelic/commit/150476a61cd272a29ed7c03366e879f6eb009298))
43
+ * Refactored OTEL transform rules ([#3999](https://github.com/newrelic/node-newrelic/pull/3999)) ([48ff739](https://github.com/newrelic/node-newrelic/commit/48ff739e47a21a1ac5c0fa5673e8ef4fc4f153fb))
44
+ * Fixed node-version in CI workflow ([#4042](https://github.com/newrelic/node-newrelic/pull/4042)) ([dd05ea9](https://github.com/newrelic/node-newrelic/commit/dd05ea914e157278e56b0887ec89317dcc1852d8))
45
+ * Updated codecov action ([#4039](https://github.com/newrelic/node-newrelic/pull/4039)) ([31b9c84](https://github.com/newrelic/node-newrelic/commit/31b9c8416116c8b04293f53335540729e934c768))
46
+ * Updated remote-method to use audit method of logger ([#4038](https://github.com/newrelic/node-newrelic/pull/4038)) ([0e4507e](https://github.com/newrelic/node-newrelic/commit/0e4507e27a62f880f9748d675d2b2127b1605d0f))
47
+ * Added baseline instructions for Claude bot ([#4036](https://github.com/newrelic/node-newrelic/pull/4036)) ([c8f6649](https://github.com/newrelic/node-newrelic/commit/c8f66496764cab5e3361d4b0b0f21bd889356189))
48
+ * Updated dependencies
49
+ * Removed unused dev dependencies ([#4005](https://github.com/newrelic/node-newrelic/pull/4005)) ([e00f7d3](https://github.com/newrelic/node-newrelic/commit/e00f7d3132a8d7635a65162d80fd3217edad35f5))
50
+ * Updated `@apm-js-collab/tracing-hooks` to `0.9.1` ([#4043](https://github.com/newrelic/node-newrelic/pull/4043)) ([f05e5d4](https://github.com/newrelic/node-newrelic/commit/f05e5d473e641ed783ced0b1ef8b2fabc5df3502))
51
+ * Updated `commander` to latest ([#4021](https://github.com/newrelic/node-newrelic/pull/4021)) ([83b1d58](https://github.com/newrelic/node-newrelic/commit/83b1d5871bd70244ece463cbca23f34cbacfe6d7))
52
+ * Updated `nock` to latest ([#4022](https://github.com/newrelic/node-newrelic/pull/4022)) ([9bf79ab](https://github.com/newrelic/node-newrelic/commit/9bf79ab23eefabd22a529a26a7d3d75e7ff08a19))
53
+ * Updated `sinon` to latest ([#4020](https://github.com/newrelic/node-newrelic/pull/4020)) ([0ced304](https://github.com/newrelic/node-newrelic/commit/0ced30446a9be2711c96c0afa6453e6b87c014ad))
54
+ * Updated `protobufjs` to latest ([#4006](https://github.com/newrelic/node-newrelic/pull/4006)) ([45c61f3](https://github.com/newrelic/node-newrelic/commit/45c61f3624945553bfa5aac331c577255827f7bc))
55
+ * Upgraded `glob` to 13 ([#4008](https://github.com/newrelic/node-newrelic/pull/4008)) ([3053545](https://github.com/newrelic/node-newrelic/commit/3053545aa3c1ed673255887448b65f20137d670e))
56
+ * Upgraded `got` and `rimraf` to latest ([#4007](https://github.com/newrelic/node-newrelic/pull/4007)) ([b967593](https://github.com/newrelic/node-newrelic/commit/b9675938bfa0165b54f3df583577bfd36c70cdcd))
57
+
58
+ #### Tests
59
+
60
+ * Add stable `http.request` shim so AWS test agent setup works with smithy >=4.7.3 ([#4010](https://github.com/newrelic/node-newrelic/pull/4010)) ([c5fd80a](https://github.com/newrelic/node-newrelic/commit/c5fd80aeeae88f3ada7cd27219832cec49765040))
61
+ * Added an undici versioned test to assert behavior with using a self signed cert and `undici.Agent` ([#4026](https://github.com/newrelic/node-newrelic/pull/4026)) ([27507bc](https://github.com/newrelic/node-newrelic/commit/27507bc3678dd03ab232892be33959622b34a210))
62
+ * Refactor `mongodb-esm` tests to test `>=4.1.4` ([#4023](https://github.com/newrelic/node-newrelic/pull/4023)) ([d85767f](https://github.com/newrelic/node-newrelic/commit/d85767fa83e300610bfbe3a4b3e2e3d5ab8a6b91))
63
+ * Removed reliance on `glob` in lieu of `fs.glob` ([#4019](https://github.com/newrelic/node-newrelic/pull/4019)) ([204f124](https://github.com/newrelic/node-newrelic/commit/204f1242810135f24ae6e3b9543cd227c813b16d))
64
+ * Updated undici.Agent versioned test to skip using custom dispatcher on versions <5.2.0 as it was not supported ([#4029](https://github.com/newrelic/node-newrelic/pull/4029)) ([08cd079](https://github.com/newrelic/node-newrelic/commit/08cd07907748bf4deb2259d8e6572dcb49d51ad9))
65
+
66
+ ### v14.0.0 (2026-05-18)
67
+ #### ⚠ BREAKING CHANGES
68
+
69
+ This version of the Node.js agent is a SemVer MAJOR update and contains the following breaking changes. MAJOR versions may drop support for language runtimes that have reached End-of-Life according to the maintainer. Additionally, MAJOR versions may drop support for and remove certain instrumentation. For more details on these changes please see the [migration guide](https://docs.newrelic.com/docs/apm/agents/nodejs-agent/installation-configuration/update-nodejs-agent/).
70
+
71
+ * Dropped support for Node.js 20
72
+ * Migrated `@apollo/sever` instrumentation from a plugin(`@newrelic/apollo-server-plugin`) to traditional instrumentation
73
+ * Removed Cross Application Tracing(CAT) functionality
74
+ * Removed support for License, Application, and Security Policies(LASP)
75
+ * Removed instrumentation for `koa-route`
76
+ * Removed instrumentation for `koa-router`
77
+ * Removed `shim.prefixRouteParameters` as the logic was previously moved to when a transaction ends
78
+ * Removed creating `MySQL Pool#query` segments
79
+ * Removed `shim.argsToArray`
80
+ * Updated minimum supported version of `@nestjs/cli` and `@nestjs/core` to `10.0.0`
81
+ * Updated minimum supported version of `next` to 14
82
+ * Updated minimum supported version of `bluebird` to `3.0.0`
83
+ * Updated minimum supported version of `mysql2` to `3.0.0`
84
+ * Updated minimum supported version for `cassandra-driver` to `4.0.0`
85
+ * Dropped support for `fastify` 3.x
86
+ * Updated `config.distributed_tracing.exclude_newrelic_header` to be set to `true` by default
87
+
88
+ #### Features
89
+
90
+ * Dropped support for `fastify` 3.x ([#3980](https://github.com/newrelic/node-newrelic/pull/3980)) ([720979b](https://github.com/newrelic/node-newrelic/commit/720979bccb65c93a143d1e069a32904bff78f02b))
91
+ * Dropped support for Node.js 20 ([#3980](https://github.com/newrelic/node-newrelic/pull/3980)) ([5306223](https://github.com/newrelic/node-newrelic/commit/530622314532e3c7eb4d8c3685e0b1974df61b8f))
92
+ * Migrated `@apollo/sever` instrumentation from a plugin(`@newrelic/apollo-server-plugin`) to traditional instrumentation ([#3980](https://github.com/newrelic/node-newrelic/pull/3980)) ([736e0a4](https://github.com/newrelic/node-newrelic/commit/736e0a40b78224e32e263a3aa0264c150d29982d))
93
+ * Removed `shim.argsToArray` ([#3980](https://github.com/newrelic/node-newrelic/pull/3980)) ([9183d29](https://github.com/newrelic/node-newrelic/commit/9183d29c456aba6ad003bc0a365c14d9b5d3044c))
94
+ * Removed `shim.prefixRouteParameters` as the logic was previously moved to when a transaction ends ([#3980](https://github.com/newrelic/node-newrelic/pull/3980)) ([9f1408e](https://github.com/newrelic/node-newrelic/commit/9f1408e26b168733644b3c9160dc45726c4b0034))
95
+ * Removed creating `MySQL Pool#query` segments ([#3980](https://github.com/newrelic/node-newrelic/pull/3980)) ([1d5a6dd](https://github.com/newrelic/node-newrelic/commit/1d5a6dde7f5c1280079cdca859cc5a2fc3121556))
96
+ * Removed Cross Application Tracing(CAT) functionality ([#3980](https://github.com/newrelic/node-newrelic/pull/3980)) ([a87ed4d](https://github.com/newrelic/node-newrelic/commit/a87ed4dbd3aad072de81475601844efebd8353ac))
97
+ * Removed instrumentation for `koa-route` ([#3980](https://github.com/newrelic/node-newrelic/pull/3980)) ([40c10d9](https://github.com/newrelic/node-newrelic/commit/40c10d90fdebd08dba7bb8e99856def93093267a))
98
+ * Removed instrumentation for `koa-router` ([#3980](https://github.com/newrelic/node-newrelic/pull/3980)) ([038ecc7](https://github.com/newrelic/node-newrelic/commit/038ecc749a0fd5d2cdd0ba6b5b0c9537f04a3208))
99
+ * Removed support for License, Application, and Security Policies(LASP) ([#3980](https://github.com/newrelic/node-newrelic/pull/3980)) ([bc09485](https://github.com/newrelic/node-newrelic/commit/bc094850bd18daf6be047615ad71c4dc13a7ec85))
100
+ * Updated `config.distributed_tracing.exclude_newrelic_header` to be set to `true` by default ([#3980](https://github.com/newrelic/node-newrelic/pull/3980)) ([774ce08](https://github.com/newrelic/node-newrelic/commit/774ce0805ddefd4a6e89d8635183d31e2d7e1d3a))
101
+ * Updated minimum supported version for `cassandra-driver` to `4.0.0` ([#3980](https://github.com/newrelic/node-newrelic/pull/3980)) ([419337a](https://github.com/newrelic/node-newrelic/commit/419337a78d126467cbf4fc70b94ec293fb919bbf))
102
+ * Updated minimum supported version of `@nestjs/cli` and `@nestjs/core` to `10.0.0` ([#3980](https://github.com/newrelic/node-newrelic/pull/3980)) ([120e6de](https://github.com/newrelic/node-newrelic/commit/120e6deef05c940baea52656dd04fdd992e9061d))
103
+ * Updated minimum supported version of `bluebird` to `3.0.0` ([#3980](https://github.com/newrelic/node-newrelic/pull/3980)) ([369f920](https://github.com/newrelic/node-newrelic/commit/369f920a86b81980552fe97c708b1aeb3a70771f))
104
+ * Updated minimum supported version of `mysql2` to `3.0.0` ([#3980](https://github.com/newrelic/node-newrelic/pull/3980)) ([2861406](https://github.com/newrelic/node-newrelic/commit/2861406c6d9d41f71dab2332d1fd22c27ddfda7c))
105
+ * Updated minimum supported version of `next` to 14 ([#3980](https://github.com/newrelic/node-newrelic/pull/3980)) ([80c5c0c](https://github.com/newrelic/node-newrelic/commit/80c5c0ca1ffdf2c2fa6d4abf74c8b7c3e2024a2e))
106
+
107
+ #### Code refactoring
108
+
109
+ * Updated how exclusive time and trace total time is calculated ([#3980](https://github.com/newrelic/node-newrelic/pull/3980)) ([b227ed6](https://github.com/newrelic/node-newrelic/commit/b227ed6975b077a8e16cffafc781a14d55636059))
110
+ * Updated instances of `tracer.bindFunction` with `tracer.runInContext` to improve performance in hot paths ([#3811](https://github.com/newrelic/node-newrelic/pull/3811)) ([5d77085](https://github.com/newrelic/node-newrelic/commit/5d77085b89e98bb1e09a9206a5d5656cdc410c2d))
111
+
112
+ #### Documentation
113
+
114
+ * Updated compatibility report ([#3990](https://github.com/newrelic/node-newrelic/pull/3990)) ([f3bb380](https://github.com/newrelic/node-newrelic/commit/f3bb380770e575e1ef3600e6601ddbf944b189ea))
115
+
116
+ #### Miscellaneous chores
117
+
118
+ * Removed `husky` in lieu of git hooks, added security hardened options to `npm install` ([#3988](https://github.com/newrelic/node-newrelic/pull/3988)) ([e3a7dda](https://github.com/newrelic/node-newrelic/commit/e3a7ddaee58f393cf347d812fed6b4c6ab1505f0))
119
+ * Updated production dependencies to the latest ([#3996](https://github.com/newrelic/node-newrelic/pull/3996)) ([b710bac](https://github.com/newrelic/node-newrelic/commit/b710bacff2231c8038b792ac4c7a570991566835))
120
+
121
+ #### Tests
122
+
123
+ * Added `minSupported` to the nest js versioned tests package.json to ensure the compatibility report will show we support `@nestjs/core` ([#3982](https://github.com/newrelic/node-newrelic/pull/3982)) ([bfa4aa1](https://github.com/newrelic/node-newrelic/commit/bfa4aa1d7b1fa60b8ac0da221f132124fb31ea6d))
124
+ * Added prisma 7 tests ([#3980](https://github.com/newrelic/node-newrelic/pull/3980)) ([116ee9c](https://github.com/newrelic/node-newrelic/commit/116ee9cd006d378afba1922d8daa27e213d1f6ab))
125
+ * Moved versioned test runner code from `@newrelic/test-utilties` to agent ([#3980](https://github.com/newrelic/node-newrelic/pull/3980)) ([d4f9a0c](https://github.com/newrelic/node-newrelic/commit/d4f9a0ce27364b7cfb723fa6a7c56a5ccdc07b68))
126
+ * Removed `@newrelic/test-utilities` ([#3980](https://github.com/newrelic/node-newrelic/pull/3980)) ([1751147](https://github.com/newrelic/node-newrelic/commit/1751147503c9ff971208c2977912d7298e9e923f))
127
+ * Decrease smoke-like esm tests' sample size ([#3986](https://github.com/newrelic/node-newrelic/pull/3986)) ([40669fb](https://github.com/newrelic/node-newrelic/commit/40669fbc157d65b53a4e5b7c22061ede7f26e630))
128
+ * Fixed `test/lib/get-package-version.js` ([#3993](https://github.com/newrelic/node-newrelic/pull/3993)) ([5d31f08](https://github.com/newrelic/node-newrelic/commit/5d31f08fb542f7b58bf89457f8a30255511ee9e0))
129
+ * Fixed version lookup issue in aws-sdk-v3 tests ([#3992](https://github.com/newrelic/node-newrelic/pull/3992)) ([7be3f4a](https://github.com/newrelic/node-newrelic/commit/7be3f4ab5a69fa7563752f584704e59cf6a863d2))
130
+ * Restructure `aws-sdk-v3` test runner to use `groupedDependencies` ([#3984](https://github.com/newrelic/node-newrelic/pull/3984)) ([fc67490](https://github.com/newrelic/node-newrelic/commit/fc674909e176f0f5305a0798c14d3c8447e58155))
131
+ * Updated a few versioned test stanzas to reduce the number of combinations it runs ([#3991](https://github.com/newrelic/node-newrelic/pull/3991)) ([d606305](https://github.com/newrelic/node-newrelic/commit/d6063055ebd034deabd2f2c3f1acba8162a5bd44))
132
+
133
+ #### Continuous integration
134
+
135
+ * Added `contents: write` to `post-release` to allow commit/push of api docs ([#3978](https://github.com/newrelic/node-newrelic/pull/3978)) ([90c4e61](https://github.com/newrelic/node-newrelic/commit/90c4e61ac304715dc0848aad091ec1725e057367))
136
+ * Updated remaining actions so they are running on Node 24 ([#3980](https://github.com/newrelic/node-newrelic/pull/3980)) ([ea21934](https://github.com/newrelic/node-newrelic/commit/ea21934a7b638855610ff193e88d15f8b910d8a8))
137
+ * Updated version of `actions/download-artifact` to v8 ([#3980](https://github.com/newrelic/node-newrelic/pull/3980)) ([54a58b9](https://github.com/newrelic/node-newrelic/commit/54a58b95bb8b5a15d7f7b340a9c8da2a3d3e88a9))
138
+ * Updated versions of actions to ensure they are running on node 24 ([#3980](https://github.com/newrelic/node-newrelic/pull/3980)) ([6302002](https://github.com/newrelic/node-newrelic/commit/630200223d03e39249e359563727900a70ce15cf))
139
+
75
140
  ### v13.20.0 (2026-05-12)
76
141
 
77
142
  #### Features
package/README.md CHANGED
@@ -62,34 +62,9 @@ To use New Relic's Node.js agent entails these three steps, which are described
62
62
  ```
63
63
 
64
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).
65
+ We recommend using the hybrid agent functionality to setup Next.js. Please read our [Next.js instrumentation with hybrid agent](https://docs.newrelic.com/docs/apm/agents/nodejs-agent/extend-your-instrumentation/nextjs-instrumentation) document for more information. The following example applications show how to load the `newrelic` hybrid agent instrumentation, inject browser agent, and deploying to Vercel:
66
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) (limited to Next.js versions [12.2.0](https://github.com/vercel/next.js/releases/tag/v12.2.0) - [13.4.12](https://github.com/vercel/next.js/releases/tag/v13.4.12)), 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
- ### Setup
72
- Typically you are running a Next.js app with the `next` cli and you must load the agent via `NODE_OPTIONS`:
73
-
74
- ```sh
75
- NODE_OPTIONS='-r newrelic' next start
76
- ```
77
-
78
- If you are having trouble getting the `newrelic` package to instrument Next.js, take a look at our [FAQs](./documentation/nextjs/faqs/README.md).
79
-
80
- ### Next.js example projects
81
- The following example applications show how to load the `newrelic` instrumentation, inject browser agent, and handle errors:
82
-
83
- * [Pages Router example](https://github.com/newrelic/newrelic-node-examples/tree/9415503f3bd78fa5d87a7214596d51c946199474/nextjs/nextjs-legacy)
84
- * [App Router example](https://github.com/newrelic/newrelic-node-examples/tree/9415503f3bd78fa5d87a7214596d51c946199474/nextjs/nextjs-app-router)
85
-
86
- ### Custom Next.js servers
87
-
88
- 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.
89
-
90
- ```sh
91
- node -r newrelic your-program.js
92
- ```
67
+ * [App Router example](https://github.com/newrelic/newrelic-node-examples/tree/9fa74c516926014fa33758cbd6e3737334ed4f98/nextjs/nextjs-app-router)
93
68
 
94
69
  ## ECMAScript Modules
95
70
 
@@ -136,7 +111,7 @@ We support the following custom instrumentation API methods in ES module apps:
136
111
  * `newrelic.instrumentMessages`
137
112
  * `newrelic.instrumentWebframework`
138
113
 
139
- Note that we _do not_ support `newrelic.instrumentLoadedModule`, for the same issue of immutability mentioned above.
114
+ Note that `newrelic.instrumentLoadedModule` is deprecated and scheduled for removal in v15. It was never supported in ES module apps, and in CommonJS it only existed to retrofit instrumentation when the agent was loaded after user modules, which is no longer supported.
140
115
 
141
116
  If you want to see an example of how to write custom instrumentation in an ES module app, check out our [examples](https://github.com/newrelic/newrelic-node-examples/tree/main/esm-app) repo for a working demo.
142
117
 
@@ -148,10 +123,6 @@ For more information on getting started, [check the Node.js docs](https://docs.n
148
123
 
149
124
  There are modules that can be installed and configured to accompany the Node.js agent:
150
125
 
151
- * [`@newrelic/apollo-server-plugin`](https://github.com/newrelic/newrelic-node-apollo-server-plugin): New Relic's official Apollo Server plugin for use with the Node.js agent.
152
-
153
- There are modules included within the Node.js agent to add more instrumentation for 3rd party modules:
154
-
155
126
  * [`@newrelic/native-metrics`](https://github.com/newrelic/node-native-metrics): Provides hooks into the native v8 layer of Node.js to provide metrics to the Node.js agent.
156
127
 
157
128
  ## Usage