Notes
Bug fixes
- deps: Updated @newrelic/aws-sdk to 7.0.3 (#1902) (bf22ae5)
- Updated shimmer to handle instrumenting named and default exports of CommonJS modules in ESM (#1894) (9f7979c)
Code refactoring
- Fixed cognitive complexity violations of openai instrumentation by moving functions outside of the parent function scope (#1895) (31dc717)
- Updated span names of openai actions to allow AI O11y team to locate relevant spans (#1896) (b7a644d)
Miscellaneous chores
Tests
- Fix winston-esm versioned tests (#1898) (6e02e57)
- pin undici versioned below 6.0.0 on Node 16 (#1900) (9973b24)
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
- Added instrumentation for
openai
.- This feature is in limited preview and will be off by default.
- Aside from creating spans for chat completions and embeddings, it will create custom events that drive the New Relic AI Monitoring.
- Added instrumentation for chat completion streams (#1884) (404e317)
- Added instrumentation for openai chat completion creation (#1862) (34dcd70)
- Added instrumentation for openai embedding creation (#1872) (1c62321)
- Added
ai_monitoring.enabled
configuration.(#1873) (52bf9f3) - Added
Nodejs/ML/OpenAI/<version>
metric every time a chat completion or embedding occurs.(#1886) (d11d100) - Added
setLlmMetadata
API to allow users to specify metadata for LLM events (#1863) (85979d7) - Ensure API errors are tracked (#1880) (289c2a2)
- Added
getLlmMessageIds
andrecordLlmFeedbackEvent
API methods for tracking LLM feedback (#1868) (1681e4b) - Added openai LLM events. (#1857) (a7786f3)
- Added pkgVersion to shim instances to facilitate semver checking without having to re-parse the package.json (#1883) (4ddfd81)
Bug fixes
Security improvements
Code refactoring
Miscellaneous chores
- dep: Updated @newrelic/security-agent to v0.5.0 (#1877) (2882236)
- dev-deps: bump axios and @slack/bolt (#1871) (2d00b02)
- docs: Updated links in documentation to https (#1888) (f1913ea)
- Fixed bool -> boolean in jsdoc (#1853) (3c00e55)
Tests
- Added streaming responses to mock OpenAI sever (#1881) (86d83f2)
- Added unit tests for LLM API methods (#1878) (3d8b987)
- Added a mock server for openai testing (#1858) (3b1f5e6)
- Fixed shadowed variable lint error in pino versioned tests (#1859) (e1b21eb)
- Updated openai versioned tests to properly work with the legacy context manager (#1876) (a879700)
Continuous integration
- Made release note date always in pacific time (#1855) (6d7dc69)
- Remove updating staging with newly release agent version (#1887) (9d38faa)
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
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
Miscellaneous chores
- [Snyk] Upgraded @grpc/grpc-js from 1.9.2 to 1.9.4. (#1823) (81f9450)
- deps: Updated aws-sdk, koa, superagent (#1831) (8b4e963)
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
Features
- Updated agent initialization to allow running in worker threads when config.worker_threads.enabled is true (#1817) (a39f0ef)
Bug fixes
Miscellaneous chores
- dev-deps: Bumped @babel/traverse (#1818) (d3c8d04)
- Updated release note headers to follow standard sentence caps (#1806) (91d3600)
Tests
- Updated the grpc versioned tests utils to dynamically bind ports to avoid conflicts between cjs and esm tests (#1820) (95ac917)
Continuous integration
- Disabled fail-fast on testing jobs to make sure all versions are run before getting canceled because of a flappy test (#1819) (0928ee3)
- Updated CI workflow to use larger runners on versioned tests but only when running against the main branch (#1812) (01eaa14)
- Updated post release script to update the nodejs_agent_version only on staging and us prod, eu will get it via replication now (#1811) (317a00a)
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
- Updated initialization to return the API on start up to the security agent properly (#1807) (99e5792)
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
- Updated agent to create a stub api when running in a worker thread to avoid Next.js early return errors (#1800) (636e8f0)
- Updated shimmer to allow registering instrumentation for different versions of the same module (#1799) (30f0b16)
Miscellaneous chores
- deps: Updated @newrelic/security-agent to v0.3.0 (#1786) (9ca78ae)
- Separated running versioned tests between local and external (#1792) (6ffe2f6)
- dev-deps Updated get-func-name to fix CVE (#1790) (f378c77)
Tests
- Updated elasticsearch container to ignore highwatermark to function on a constrained environment (#1803) (8380e9d)
- Updated invalid json pino test as this was fixed in 8.15.1 of the pino library. (#1782) (3e65fdc)
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
- Added instrumentation for fetch. (#1776) (980b4dc)
- Removed undici feature flag. This will now instrument undici by default. (#1772) (683b254)
- Updated undici instrumentation to create segment on request create instead of after connection and opening socket to more accurately record time it takes to make an undici request. (#1770) (3f494f8)
Performance Improvements
- Trace: optimise getTotalTimeDurationInMillis function to push to an array instead of concat arrays. (#1774) (6ecde97)
- Thanks @infinity-naveen for your contribution 🎉
Miscellaneous Chores
- Updated Next.js plugin versioned tests to use main now that require-in-the-middle fixes have been merged. (#1768) (6a72d1f)
- Upgraded
@newrelic/test-utilities
and removed unused shimmer.patchModule and shimmer.unpatchModule (#1769) (96620ef)
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
⚠ 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/)