Notes
Added application logging for Winston in the Node.js agent
Ability to forward logs, send log metrics, and perform local log decoration
Added application log aggregator to collect logs with adaptive sampling and appropriate max samples stored.
Added
application_loggingconfiguration and env vars with appropriate defaults.Added
application_logging.enabledconfiguration value, defaulting to true.Set
application_logging.forwarding.enabledto false when High-security mode (HSM) is set.Enabled log forwarding by default in the example config.
Added sent, seen, and dropped metrics that collected on every harvest cycle around log lines.
Added supportability metrics for some popular logging frameworks.
Added supportability metrics to record if the logging features are enabled.
Added a storage mechanism to transactions to keep logs until transaction ends.
- Removed distributed tracing setting from example config.
Fixed a typo in
lib/instrumentation/core/child_process.js.Thanks to Eito Katagiri (@eitoball) for the contribution.
- Support automatic instrumentation of Redis v4.
- Bumped moment from v2.29.1 to v2.29.2.
- Bumped
tapto v16.x.
- Updated
ansi-regexto resolve a dev dependency audit warning.
Notes
Added instrumentation for
mysql2/promise.- This previously only existed in our standalone
@newrelic/mysql, but now gives feature partiy between the two.
- This previously only existed in our standalone
Removed unused native CPU metric sampler. This logic was no longer getting touched when running Node.js versions higher than 6.1.0.
Fixed promise interceptor from re-throwing errors.
Added transaction naming documentation ported from a discussion forum post.
Added
promises.tap.jsto mysql2 versioned tests.Updated @newrelic/test-utilities to latest.
Removed unused test file in restify versioned tests.
Added
--strictflag to versioned test runner to properly fail CI runs when test files are not included.
Notes
Fixed
shim.wrapReturnto callReflect.constructin construct Proxy trap. Also includingnewTargetto work with inherited classes.Added link to New Relic Node.js Examples repository.
Excluded installing dependencies in
versioned-externalfolders when running integration tests.
Notes
Added support for
initializeUnorderedBulkOp, andinitializeOrderedBulkOpin mongodb v3 instrumentation.Thanks to Denis Lantsman (@dlants) for the contribution.
Updated logger to delay logging until configuration is parsed. The logger will now queue all log entries that occur before the agent can parse the configuration.
Thanks to Cody Landry (@codylandry) for the contribution.
Added
NEW_RELIC_ALLOW_ALL_HEADERSas a boolean environment variable, same behavior as existingallow_all_headers.Updated the AWS IMDBS v2 endpoint to use
latestto align with the internal agent specification.Bumped
@newrelic/koato ^6.1.1.Added Next.js to External Modules list in README.
Updated mysql and mysql2 versioned tests to run against their own databases on the MySQL instance.
Removed upper-bound testing from restify versioned tests so future major versions will be covered.
Removed upper-bound testing from mysql2 versioned tests to cover existing and future major versions.
Continues to skip version 1.6.2 which had a bug that broke tests which was resolved in 1.6.3.
Updated @hapi/hapi Node 16 versioned test runs to run against @hapi/hapi >=20.1.2 so future major releases will be ran.
Fixed sparse checkout of non-default branch for external versioned tests.
Added external versioned tests for the Apollo Server plugin instrumentation.
Added nock delay to test timeouts in utilization integration tests.
Added newrelic-node-nextjs to external versioned tests to be run on every PR.
Updated external version test running to support more test scenarios.
- Adds
test/versioned-externalto lint ignore to avoid issues for scripts in tests that auto run linting tools (next/react). - Adds
index.jsandnr-hooks.jsto files automatically checked-out for test runs.
- Adds
Notes
Updated AWS metadata capture to utilize IMDSv2.
Fixed link to discuss.newrelic.com in README
Updated minimum Node version warning to output current Node version from process.
Bumped
@newrelic/native-metricsto ^7.1.1.Added
Nextjsto a framework constant within the webframework-shim.Updated shim to pass active segment to inContext callback.
Bumped
@grpc/grpc-jsto ^1.5.5.Bumped
@grpc/proto-loaderto ^0.6.9.Bumped
@newrelic/superagentto ^5.1.0.Bumped
@newrelic/koato ^6.1.0.Bumped
asyncto ^3.2.3.Resolved several npm audit warnings for dev deps.
Fixed Post Release workflow by properly configuring git credentials so it can push API docs to branch
Added
set -ein publish docs script to exit on possible failuresRemoved redundant
npm ciin publish API docs scriptAdded ability to ignore certain PRs in
bin/pending-prs.jsreport to slackUpdated README to include
@newrelic/pino-enricheras an external module.Fixed documentation in a sample of the Datastore Instrumentation for Node.js.
Added a new
mongo:5container tonpm run sevicesto test mongodb driver >=4.2.0.Fixed conditions in post release workflow to function when triggered via successful release and manual invoked.
Updated method for retrieving agent version from repository by using
cat package.json | jq .versionFixed minor formatting and spelling issues in
create-docs-pr.js.Fixed an issue with the docs PR script that assumed
\nin the NEWS.md file when extract version and release date
Notes
Bumped @newrelic/aws-sdk to ^4.1.1.
Upgraded
@newrelic/test-utilitiesto ^6.3.0.Includes
helpers.getShimso sub packages properly execute.Resolved dependabot and certain npm audit warnings.
Automation and CI improvements:
- Added a script to be used by agent developers to add a PR to
docs-websiteafter the release of agent. - Changed the trigger for post release jobs.
- Updated the
create-release-tagscript to pass in workflows to check before creating tag.- Fixed
create-release-tagto properly filter out all async workflow run checks - Updated agent release to pass in a different list of workflows vs the default
- Fixed
- Fixed release creation reusable workflow by passing in repo to
bin/create-release-tag.jsandbin/create-github-release.js. - Added
workflow_dispatchto Agent Post Release workflow for manual testing. - Added a reusable workflow to create a release tag, publish to NPM and publish a GitHub release.
- Updated agent release workflow to reference reusable workflow.
- Added a new workflow to update RPM and publish API docs on a published release event type.
- Added a script to be used by agent developers to add a PR to
Notes
Updated
onResolvedinstrumentation hook to only be called the first time we see a specific module filepath resolved.Removed
tracer.segmentin place of direct usage of context manager.Fixed an issue where multiple calls to
instrumentLoadedModuleresulted in re-instrumenting the same module.Fixed issue where
instrumentLoadedModulewould returntrueeven if the instrumentation handler indicated it did not apply instrumentation.Added support metrics for tracking when instrumentation was applied per module.
Supportability/Features/Instrumentation/OnResolved/<module-name>Supportability/Features/Instrumentation/OnResolved/<module-name>/Version/<major version>Supportability/Features/Instrumentation/OnRequire/<module-name>Supportability/Features/Instrumentation/OnRequire/<module-name>/Version/<major version>
Fixed issue where expected status code ranges would not be parsed until ignored status codes were also defined.
Added an input
changelog_fileto pass in name of changelog. This defaults toNEWS.mdbut some repos useCHANGELOG.mdAbstracted
bin/prepare-release.jsto work against other repositories.Added reusable prepare-release workflow that can be referenced in all other newrelic Node.js repositories.
Updated pending PRs workflow to check all repos the team owns.
Changed the event type from
pull_requesttopull_request_targetto allow for auto assign of PRs to the Node.js Engineering BoardFixed add to board workflow to properly pass repository secrets into reusable board workflow.
Changes token used to post issues to org level project board
Runs versioned tests for external modules against tests defined in the external repository instead of tests published in npm modules.
Added a reusable workflow to automatically add issues to the Node.js Engineering Board when created.
Added CI job to update system configurations with new agent version on release.
Moved
methods.jsunder bluebird versioned test folder.
Notes
Added onResolved instrumentation hook to apply instrumentation prior to module load.
This hook fires after the module filepath has been resolved just prior to the module being loaded by the CommonJS module loader.
Fixed issue where recordConsume was not binding consumer if it was a promise
Pinned mongo versioned tests up to 4.2.0 until we can address #982
Introduced a context management API to be used in place of manually calling tracer.segment get/set.
Notes
- Fixed issue where unhandled promise rejections were not getting logged as errors in a lambda execution
Notes
Fixed bug where failure to retrieve CPU/Memory details for certain Linux distros could result in a crash.
parseProcCPUInfoandparseProcMeminfonow check fornullinput prior to processing.Updated README to favor using
-rto load the agent vsrequire('newrelic').Updated
@newrelic/test-utilitiesto 6.1.1 and applied a global sampling value of 10 for versioned tests.Migrated utilization unit tests from mocha to tap.
Migrated logger unit tests from mocha to tap.
Cleaned up or added future removal comments for several deprecation warnings.
Added a script and corresponding CI job that will check for PRs that have been merged and not release and notify the team in a private slack channel.
Updated the versioned test runner to always run against minor versions.
Fixed a high severity npm audit failure.