Notes
⚠ BREAKING CHANGES
- Removed support for Node 14.
- Replaced ESM loader with import-in-the-middle to fix instrumentation firing for both CommonJS and ESM.
- You must load both the ESM loader and agent as follows:
node --experimental-loader newrelic/esm-loader.mjs -r newrelic path/to/app.js
. - Removed
config.esm.custom_instrumentation_entrypoint
to register ESM instrumentation. You can now just call thenewrelic.instrument*
APIs but you must pass in an object and specifyisEsm: true
. See example.
- You must load both the ESM loader and agent as follows:
- Updated agent to use require-in-the-middle to register CommonJS instrumentation. You can no longer use an onResolved hook to register custom instrumentation.
- Updated the default context manager to be AsyncLocalContextManager.
- Renamed
shim.handleCATHeaders
toshim.handleMqTracingHeaders
. - Updated agent to only run in the main thread. This is because running in a worker thread does not completely function out of the box. This will reduce the overhead for customers that are naively trying to load this into worker threads.
Features
- Added support for Node 20.
- Renamed
shim.handleCATHeaders
toshim.handleMqTracingHeaders
(#1735) (6788f9e)- If you have calls to
shim.handleCATHeaders
, the signature is identical and a function name change is only necessary. - Note: The agent will be removing CAT functionality in an upcoming release.
- If you have calls to
- Updated the default context manager to be AsyncLocalContextManager (#1731) (25f2bd8)
- To restore functionality of legacy context manager you can set
config.feature_flag.legacy_context_manager
totrue
or `NEW_RELIC_FEATURE_FLAG_LEGACY_CONTEXT_MANAGER=true - Please note this legacy context manager will be removed in future major releases. If you have any issues, please raise with New Relic support or on the issues of the agent.
- To restore functionality of legacy context manager you can set
Bug Fixes
- Replaced esm loader with import-in-the-middle to fix instrumentation firing for both commonjs and esm (#1760) (4452354), closes 1646
- Breaking Change: Updated ESM loader that now requires to use both a loader and -r.
node --experimental-loader newrelic/esm-loader.mjs -r newrelic path/to/app.js
- Breaking Change: Removed
config.esm.custom_instrumentation_entrypoint
to register ESM instrumentation.- You can now just call the
newrelic.instrument*
APIs but you must pass in an object and specifyisEsm: true
.
- You can now just call the
- Breaking Change: Updated ESM loader that now requires to use both a loader and -r.
- Updated prisma instrumentation to parse prisma datamodel with internal package (#1765) (48079b3)
Code Refactoring
- Updated agent to use require-in-the-middle to register CommonJS instrumentation (#1758) (d4b4f11)
- Removed onResolved hook. If you're using custom instrumentation with an onResolved hook, you must update to use onRequire
- You can no longer instrument files that are not within a node_module unless you provide an absolute path to the file when registering the instrumentation.
- You cannot instrument both the base module and a sub module.
Miscellaneous Chores
- Remove support for Node 14 (#1756) (0ff9912)
- Updated the bundled packages to the latest
@newrelic/superagent
,@newrelic/aws-sdk
,@newrelic/koa
,@newrelic/native-metrics
, and@newrelic/test-utilities
(#1766) (8f6e15b) - Updated the aws-sdk external branch to be main now that the code is in there (#1761) (d34d0fe)
Tests
Support statement:
We recommend updating to the latest agent version as soon as it's available. If you can't upgrade to the latest version, update your agents to a version no more than 90 days old. Read more about keeping agents up to date. (https://docs.newrelic.com/docs/new-relic-solutions/new-relic-one/install-configure/update-new-relic-agent/)
See the New Relic Node.js agent EOL policy for information about agent releases and support dates. (https://docs.newrelic.com/docs/apm/agents/nodejs-agent/getting-started/nodejs-agent-eol-policy/)
Notes
Bug Fixes
- added defensive code around JSON.parse in formatting pino log lines because pino can return invalid json (#1750) (8f2e11a)
Miscellaneous Chores
- deps: Updated @newrelic/security-agent to v0.2.1 (#1754) (0d04f14)
- Fix smoke tests node 20 (#1745) (8c053e0)
- fixed typos in lib/config/index.js comments (#1749) (9000a14)
Tests
Support statement:
We recommend updating to the latest agent version as soon as it's available. If you can't upgrade to the latest version, update your agents to a version no more than 90 days old. Read more about keeping agents up to date. (https://docs.newrelic.com/docs/new-relic-solutions/new-relic-one/install-configure/update-new-relic-agent/)
See the New Relic Node.js agent EOL policy for information about agent releases and support dates. (https://docs.newrelic.com/docs/apm/agents/nodejs-agent/getting-started/nodejs-agent-eol-policy/)
Notes
Security Improvements
- updated ESM loader to track instrumentation by url in a map instead of in url to avoid remote code execution. (#1741) (c8dc779)
Support statement:
We recommend updating to the latest agent version as soon as it's available. If you can't upgrade to the latest version, update your agents to a version no more than 90 days old. Read more about keeping agents up to date. (https://docs.newrelic.com/docs/new-relic-solutions/new-relic-one/install-configure/update-new-relic-agent/)
See the New Relic Node.js agent EOL policy for information about agent releases and support dates. (https://docs.newrelic.com/docs/apm/agents/nodejs-agent/getting-started/nodejs-agent-eol-policy/)
Notes
Miscellaneous Chores
- deps: Updated @newrelic/security-agent to v0.2.0 (#1737) (9bf2a01)
- restored engines to >=14 until we actually drop support for Node 14 (#1738) (8d66123)
Continuous Integration
Support statement:
We recommend updating to the latest agent version as soon as it's available. If you can't upgrade to the latest version, update your agents to a version no more than 90 days old. Read more about keeping agents up to date. (https://docs.newrelic.com/docs/new-relic-solutions/new-relic-one/install-configure/update-new-relic-agent/)
See the New Relic Node.js agent EOL policy for information about agent releases and support dates. (https://docs.newrelic.com/docs/apm/agents/nodejs-agent/getting-started/nodejs-agent-eol-policy/)
Notes
Features
Bug Fixes
Miscellaneous Chores
Support statement:
- New Relic recommends that you upgrade the agent regularly to ensure that you're getting the latest features and performance benefits. Additionally, older releases will no longer be supported when they reach end-of-life.
Notes
Bug fixes
Miscellaneous chores
Tests
Support statement
- New Relic recommends that you upgrade the agent regularly to ensure that you're getting the latest features and performance benefits. Additionally, older releases will no longer be supported when they reach end-of-life.
Notes
Security Improvements
Miscellaneous Chores
- test: Converted adaptive-sampler.test.js to tap (#1709) (bb42249)
- test: converted environment.test.js to tap (#1705) (53b4376)
- test: Replaced t.equals with t.equal (#1711) (a0b255e)
Support statement:
- New Relic recommends that you upgrade the agent regularly to ensure that you're getting the latest features and performance benefits. Additionally, older releases will no longer be supported when they reach end-of-life.
Notes
Miscellaneous Chores
- test: Converted 'errors/expected.test.js' to tap-style (#1695) (86025de)
- test: Converted server-config.test.js to tap-style (#1702) (2c6906d)
Continuous Integration
Build System
Support statement:
- New Relic recommends that you upgrade the agent regularly to ensure that you're getting the latest features and performance benefits. Additionally, older releases will no longer be supported when they reach end-of-life.
Notes
Bug Fixes
Security Improvements
Miscellaneous Chores
- test: Added t.end() to trace unit test (#1698) (254c9c0)
- test: convert error-trace-aggregator.test.js to tap-style (#1690) (44b17ab)
- test: convert trace unit test to tap style (#1692) (727c17f)
- test: Fixed tap end/autoend calls in trace unit test (#1700) (b4a4948)
Support statement:
- New Relic recommends that you upgrade the agent regularly to ensure that you're getting the latest features and performance benefits. Additionally, older releases will no longer be supported when they reach end-of-life.
Notes
Security
Miscellaneous Chores
- Added test for getRedisParams (#1670) (e9f8556)
- temporarily limit prisma tests to non-breaking version (#1680) (76d3ade)
- testing: convert query-test-aggregator tests to tap style (#1676) (d2e45ad)
- testing: Converted error-event-aggregator.test.js to tap (#1683) (9f1d66f)
Support statement:
- New Relic recommends that you upgrade the agent regularly to ensure that you're getting the latest features and performance benefits. Additionally, older releases will no longer be supported when they reach end-of-life.