New features
Added
superagentas built-in instrumentation.This instrumentation just maintains transaction state when using the
superagentmodule to make HTTP requests with either callbacks or promises.Updated
noticeErrorAPI method to be partially functional in High-security mode.In HSM, any custom attributes will be ignored, but the error will still be tracked. This brings the Node agent in line with the behavior of other language agents.
Added
PromiseShimclass for instrumenting promise libraries.Support for setting
transaction_tracer.transaction_thresholdto 0 has been added.
Improvements
- Updated DT payload creation to use
primary_application_idfrom connect response. - Added protection against functions with modified prototypes in
shim.applySegment. - Replaced SQL ID hash generation algorithm with SHA1 instead of MD5 to allow usage in FIPS compliant environments.
- Leveraged 16 hex digits for creation of SQL ID.
- Upgraded ejs module to get rid of Github security warnings. The ejs module was only used for tests and not in main agent code.
- Changes DT payload configuration log messages to debug level as it is not uncommon for calls to occur before server configuration has been retrieved.
- Converted
netinstrumentation to use shim api. - Converted child_process instrumentation to newer shim style.
- Converted Timers instrumentation to newer shim style.
- Converted zlib instrumentation to use shim API.
Bug fixes
Fixed
codec.decode()callback bug that would re-call a callback with an error thrown within the callback.Fixed bug requiring Cross Application Tracing (CAT) to be enabled for Distributed Tracing (DT)
createDistributedTracePayloadandacceptDistributedTracePayloadAPIs to function. DT configuration will no longer consider CAT configuration.Fixed bug in wrap() that would fail to wrap callbacks if the callback index was 0.
The agent now respects
NEW_RELIC_TRACER_THRESHOLD.Previously, this environment variable was stored as a string. The environment variable is now stored as a float.