Notes
Added ability to mark errors as expected when using
newrelic.noticeError
, by adding an optional boolean:newrelic.noticeError(error, {customAttributes}, true|false)
when there are custom error attributes.newrelic.noticeError(error, true|false)
if there are no custom error attributes.expected
errors do not affect error metrics or Apdex.
Added ability to disable distributed tracing for aws-sdk 3.290.0 and higher.
Updated README header image to latest OSS office required images
Updated @grpc/grpc-js from 1.8.8 to 1.8.9
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
- This version of the agent was not available, and has been deprecated. The NPM release pipeline did not run successfully. New Relic recommends installing Node agent v9.12.1 instead.
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 Prisma(
@prisma/client
).- Miniumum supported version of
@prisma/client
is 4.0.0. - Captures spans for queries.
- It names them based on the model and action.(i.e. Datastore/statement/Prisma/user/create)
- For statements and queries using the
$queryRaw
,$executeRaw
,$queryRawUnsafe
, and$executeRawUnsafe
the names will be aligned with the raw SQL.(i.e. Datastore/statement/Prisma/User/select)
- Captures database metrics for all statements and queries.
- Captures SQL Traces.
- Provides connection between application and database server via service maps.
- Miniumum supported version of
Huge shoutout to @osmanmrtacar for the original contribution
- Updated
@grpc/protoloader
from 0.7.4 to 0.7.5. - Updated
@grpc/grpc-js
from 1.8.7 to 1.8.8.
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
- Fix: Replaced
request.aborted
withresponse.close
in HTTP instrumentation. - Fixed issue where setting
NEW_RELIC_GRPC_IGNORE_STATUS_CODES
wasn't properly parsing the codes as integers, thus not ignoring reporting errors of certain status codes. - Upgraded
@grpc/grpc-js
from 1.8.4 to 1.8.7.
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 error with Lambda/ALB serverless instrumentation when no response headers were included
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
Exposed a method on API to obfuscate sql:
newrelic.obfuscateSql
.Add support for Multi Value Parameters from API Gateway and ALB events for Lambdas.
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 support for URL obfuscation using regex (Thanks for your contribution @matewilk)
- For Distributed Tracing, this means that:
- Incoming and outgoing requests'
path
will be obfuscated - Transaction's
request.url
attribute will be obfuscated - Span's
http.uri
path will be obfuscated
- Incoming and outgoing requests'
- For transactions, this means that:
- Transaction trace details
url
will be obfuscated
- Transaction trace details
- With the following example configuration, URL obfuscation will turn
/api/v1/users/12345456/edit
to/api/v1/users/**/edit
.url_obfuscation: {enabled: true,regex: {pattern: /(\/api\/v1\/users\/)([\d]+)(\/.*$)/,flags: "i",replacement: '$1**$3'}} - You can also use environment variables to configure URL obfuscation:NEW_RELIC_URL_OBFUSCATION_ENABLED: "true",NEW_RELIC_URL_OBFUSCATION_REGEX_PATTERN: '/(\/api\/v1\/users\/)([\d]+)(\/.*$)/',NEW_RELIC_URL_OBFUSCATION_REGEX_FLAGS: 'i',NEW_RELIC_URL_OBFUSCATION_REGEX_REPLACEMENT: '$1**$3'
- For Distributed Tracing, this means that:
Add a new tracking type of instrumentation. This will be responsible for logging
Supportability/Features/Instrumentation/OnResolved/<pkg>
andSupportability/Features/Instrumentation/OnResolved/<pkg>/Version/<version>
metrics when packages are required.
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
Changed GCP metadata parsing to use
json-bigint
to avoid loss of precision from numerical instance ID.Instrumented
winston.loggers.add
so it works likewinston.createLogger
.
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
getBrowserTimingHeader
to allow the browser agent to be generated even when not in a transaction by addingallowTransactionlessInjection
to function options.allowTransactionlessInjection
is a boolean option, and when set totrue
, will allow injection of the browser agent when not in a transaction. This is intended to be used in frameworks that build Static Site Generation(SSG). Note that if you're using this option, you may need to wait until the Node agent has established a connection before callinggetBrowserTimingHeader
. To wait until the agent is connected, you can add the following check to your code:
if (!newrelic.agent.collector.isConnected()) { await new Promise((resolve) => { newrelic.agent.on('connected', resolve) })}
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 a check to the code level metrics utility to ensure filePath was set before adding the
code.*
attributes.Updated to latest version of
@newrelic/test-utilities
.Fixed issue where listing of dependencies and packages from symlinked nested directories created an infinite loop which caused the agent to never connect.
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.