Notes
Added ability to instrument ES Modules with the New Relic ESM Loader.
Added support for custom ESM instrumentation.
- There is structure to registering custom ESM instrumentation. Set the relative path to the instrumentation entry point via
api.esm.custom_instrumentation_entrypoint
- Sample custom ESM instrumentation entrypoint
- All the
newrelic.instrument*
methods will still work exceptnewrelic.instrumentLoadedModule
. This is because it is geared toward CommonJS modules.
- There is structure to registering custom ESM instrumentation. Set the relative path to the instrumentation entry point via
Added test for asserting ESM loader functionality on ESM-only package
Added supportability metric of
Supportability/Nodejs/Collector/MaxPayloadSizeLimit/<endpoint>
whenmax_payload_size_in_bytes
configuration value is exceeded.Removed
application_logging.forwarding.enabled
stanza from sample config as the feature is now enabled by default.
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
Added experimental loader to support instrumentation of CommonJS packages in ECMAScript Module(ESM) applications.
- It only supports versions of Node.js >=
16.12.0
. - It is subject to change due to its experimental stability.
- It only supports versions of Node.js >=
Enhanced supportability metrics for ESM support.
- Added new metrics to track usage of ESM loader(
Supportability/Features/ESM/Loader
andSupportability/Features/ESM/UnsupportedLoader
). - Updated instrumentation map to include an optional "friendly name" for tracking metrics.
- Added new metrics to track usage of ESM loader(
Enabled re-throwing ESM import errors of
newrelic.js
so that the user is informed to rename it tonewrelic.cjs
Fixed an issue with mongodb instrumentation where IPv6 address([::1]) was not getting mapped to localhost when setting the host attribute on the segment.
Added a test ESM loader to properly mock out agent in versioned tests.
Added ESM versioned tests for:
express
,pg
,mongodb
, and@grpc/grpc-js
.
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
Updated gRPC client instrumenation to respect
grpc.record_errors
when deciding to log errors on gRPC client requests.Fixed transaction name finalization to properly copy the appropriate transaction name to root segment.
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
Added unit test suite for
lib/logger.js
.Added destructive integration test for Configuration instantiation.
Added a special case to serialize BigInts when sending them to New Relic. BigInts can appear in log data that our customers may be trying to forward.
Exposed
compressed_content_encoding
configuration and defaulted it to "gzip".Fixed public jsdoc generation.
Added
minami
back as a dev dependency for use withjsdoc-conf.js
.
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
Fixed properly setting logging metrics when using custom levels with winston.
Handled setting the logging metric name to
UNKNOWN
when using custom log levels in pino and/or winston. Thanks for your contribution @billouboq.Removed unnecessary unit test and fixture for OSS license generation.
Updated versioned tests to remove the use of the
async
module.Removed 3rd party
async
library from agent code.
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
Added official parity support for Node 18.
BREAKING: Dropped Node 12.x support. For further information on our support policy, see Node agent compatibility.
- Upgraded
@newrelic/superagent
@newrelic/aws-sdk
@newrelic/koa
@newrelic/native-metrics
and@newrelic/test-utilities
to the latest major versions - Removed Node 12 from CI workflows.
- Updated engines stanza to be
>=14
. - Updated all versioned tests stanza to be
>=14
- Converted
fs.rmdirSync
tofs.rmSync
intest/unit/config/config-location.test.js
. - Converted uses of
/dev/null
toos.devNull
in tests.
- Upgraded
BREAKING: Removed certificate bundle from agent. The configuration value
config.feature_flag.certificate_bundle
will no longer work.The agent no-longer includes the New Relic certificate bundle when using the 'certificates' configuration (commonly with proxies). If you find this breaking your current environment, we recommend getting a CA bundle such as the one from Mozilla.
BREAKING: The agent now excludes port when making external HTTPS requests to port 443 to be in compliance with the spec and other agents.
Previous external segments would be named
External/example.com:443
when using default HTTPS port. The external segment will now be namedExternal/example.com
.BREAKING: Removed ability to disable async hooks based promise context tracking via the
await_support
feature flag. This also removes the legacy Promise instrumentation.Released the
await_support
feature flag. The agent now relies on async_hooks to track async promise propagation. The net result is the if you hadfeature_flag.await_support
set to false, the legacy instrumentation tracked every function in a promise chain as a separate segment.BREAKING: Removed instrumentation for the obsolete oracle npm package.
BREAKING: Updated the minimum version of
pg
to be 8.2.x. This is the earliest support version that runs on Node 14+.BREAKING: Updated the minimum supported version of hapi to be >= v20.0.0. All versions < v20.0.0 are deprecated by hapi for security reasons, see their support policy.
- Dropped tests for hapi < v20.0.0.
Bumped
@newrelic/test-utilities
to ^7.0.0.This new version of test utilities defaults the number of concurrent jobs to currently available CPUs. For local development on modern machines, this can speed up full versioned test runs by 30-40%.
Introduced JOBS ENV var for agent versioned test runs to control number of attempted concurrent test folder runs. Set to 4 for CI runs in GHA.
Removed the async library from distributed tracing and pricing integration 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
Fixed issue where instrumented code invoked within a @grpc/grpc-js client callback would not get tracked by the agent.
Bound the external client segment to the onReceiveStatus listener to propagate transaction context to the grpc client callbacks.
Fixed issue with truncate in
lib/util/application-logging.js
. It now checks that the argument is a string before checking its length.
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
- Added gRPC server instrumentation.
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
Automatic application log forwarding is now enabled by default. This version of the agent will automatically send enriched application logs to New Relic. To learn more about about this feature, see the APM logs in context documentation. For additional configuration options, see the Node.js logs in context documentation. To learn about how to toggle log ingestion on or off by account, see our documentation to disable automatic logging via the UI or API.
Added a support statement to our release notes
Added node 18 to CI workflows.
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
Added instrumentation for grpc-js unary, streaming, and bidirectional client calls.
Added ability to disable server-side configuration via local configuration setting:
ignore_server_configuration
or environmental variable ofNEW_RELIC_IGNORE_SERVER_SIDE_CONFIG
.Added tests for client, server and bidirectional streaming of gRPC client.
Updated got from 8.3.2 to 11.8.5.
Updated moment from 2.29.2 to 2.29.4
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.