Enables ability to migrate to Configurable Security Policies (CSP) on a per agent basis for accounts already using High Security Mode (HSM).
When both HSM and CSP are enabled for an account, an agent (this version or later) can successfully connect with either
high_security: trueor the appropriate
high_securityhas been added as part of the preconnect payload.
The agent now allows installation on node v11 and v12.
This change relaxes the engines restriction to include Node v11 and v12. This does not constitute official support for those versions, and users on those versions may run into subtle incompatibilities. For those users who are interested in experimenting with the agent on v11 and v12, we are tracking relevant issues here: https://github.com/newrelic/node-newrelic/issues/279.
Lambda invocations ended with promises will now be recorded properly.
Previously, the lambda instrumentation was not intercepting the promise resolution/rejection returned from a lambda handler. The instrumentation now properly observes the promise, and ends the transaction when the promise has finished.
Lambda invocations will only attempt to end the related transaction a single time.
In the event of two lambda response events (e.g. callback called, and a promise returned), the agent would attempt to end the transaction twice, producing an extraneous empty payload. The agent now limits itself to a single end call for a given transaction.
The agent will now properly end transactions in the face of uncaught exceptions while in serverless mode.
Shim#require will now operate as expected.
Previously, the module interception code made the faulty assumption that a module's filepath would be resolved before the module load call was invoked. This caused the wrap filepath to be attributed to the modules being instrumented. This meant that attempted relative require calls using Shim#require would resolved from the incorrect path. The logic has been changed to keep a stack of the resolved filepaths, resolving the issue.
Shim#wrapReturn now uses ES6 proxies to wrap its methods.
This will accurately propagate look up and assignment onto the underlying wrapped function, while maintaining all previous functionality.
Updated versioned test configurations to reflect current engine support.
Moved third party notices to
Updates error message for license check to indicate all places that need to be updated.
serverless_modefeature flag is now enabled by default.
instrumentLoadedModulemethod to the API, allowing end-users to manually apply an instrumentation to a loaded module. Useful for cases where some module needs to be loaded before newrelic
- Removed older versions of Cassandra from versioned tests
- For debug/test runs, shimmer will now cleanup the __NR_shim property on instrumented methods. This leftover property did not result in any negative behaviors but cleaning up for thoroughness and to prevent potential confusion.
recordMiddlewarepromise parenting for certain cases where child segments are created within resolving middleware
MiddlewareSpecroute property to allow functions. Defers route processing and segment naming until just before needed (each middleware invocation).
- Fixed outdated
- Middleware instrumentation now honors
spec.appendPathfor more cases and will not pop paths when it has not appended a path.
- Refactored config to log warning and disable distributed tracing if enabled in serverless mode, but missing required config setting.
- Serverless mode no longer sets different data collection limits.
- The agent will no longer crash the process in the event of unexpected calls to the harvest callback.
- Updated required config values when using distributed tracing in
serverless_modeto only include
The agent will now accurately filter out request parameters while operating under CSP or HSM.
You can find more information about this change in the Security Bulletin.
- Agent now respects attribute type restrictions on trace/segment attributes, as well as error event/trace attributes.
Fixes potential for
RangeError: Maximum call stack size exceedederror on Transaction/Trace end.
Custom events no longer accept attributes with invalid types.
The only attribute types accepted by the backend are
number; any attribute assigned to a custom event outside these types would be dropped on ingest. The agent now filters these attributes out, and logs out a helpful message detailing the issue.