Improvements
Removed installation of Oracle container test scripts.
Replaced explicit
config.high_security === true
checks with general truthiness checks.The agent will now treat any truthy value in the
high_security
config setting as if it is enabled.
Bug fixes
- Fixed bug where agent would stop sending data to New Relic servers when a connectivity issue was encountered.
- Fixed unit test with incorrect usage of cross application tracing.
New features
- Added Neptune to the known database names.
Improvements
Updated log messages for missing configuration files to point at the base configuration.
Previously the log messages pointed at an internal file defining default values for every configuration.
Upgraded to
@newrelic/native-metrics
v4.Removed outdated config files.
Removed old, outdated examples.
Bug fixes
Fixed an issue where old CAT headers would be injected while distributed tracing was enabled.
This would happen if both
cross_application_tracing.enabled
anddistributed_tracing.enabled
were set totrue
and an instrumentation disabled tracing for an outbound request.Fixed access to
ConglomerateShim
inshimmer
.
New features
Added new shim type:
ConglomerateShim
This shim class is useful for instrumenting modules which implement several service interfaces of different types.
Improvements
Disabled logging by default when serverless_mode is enabled. Please note serverless/lambda monitoring is not yet officially released.
null
trace attribute values are no longer sent to New Relic.This change brings the Node agent in alignment with the behavior of other language agents.
Notes
Dropped support for Node versions less than 6.
Agent no longer creates transactions when in a
stopped
,stopping
orerrored
state.Removed public API methods that have been deprecated since Agent v2:
createTracer
,createWebTransaction
,createBackgroundTransaction
, andaddCustomParameter
/(s)
. See the Migration Guide for more information.Flagged
API#setIgnoreTransaction
as deprecated;TransactionHandle#ignore
should be used instead.Released several feature flags. These flags are no longer used:
feature_flag.custom_instrumentation
feature_flag.custom_metrics
feature_flag.synthetics
feature_flag.native_metrics
Added
plugins.native_metrics.enabled
configuration value.This configuration value controls the use of the
@newrelic/native-metrics
module. When set tofalse
the agent will not attempt to load that module.Custom metrics recorded via
recordMetric
andincrementMetric
API calls now automatically have the name prepended with'Custom/'
. Usages of these APIs that manually prepend with'Custom/'
will need to remove the manually specified one or will end up with metrics prepended with'Custom/Custom/'
.Dropped support for
node-cassandra-cql
.Removed from
ignore_server_configuration
config setting.Removed deprecated configuration settings
capture_params
andignored_params
.The agent will no longer cause a stack overflow when logging at trace level to stdout.
Previously, the agent would inadvertently trigger a trace level log from its trace level log (through wrapping a nextTick call), causing a stack overflow. The agent now detects this case and aborts the nested call.
New features
- The agent now reacts to failed New Relic requests based on response code, as opposed to parsing an exception message in the response body.
Improvements
- Fixed clearing of active harvest via _stopHarvester()
- Fixed handling of harvest endpoints when not all fail.
- Added agent state "connecting" to indicate when handshake with New Relic servers is starting. This can be triggered on startup and restarts.
- Added
--no-package-lock
tounit
andintegration
rules. - Released
protocol_17
feature flag. - Replaced
nsp
withnpm audit
in security checks. - Collector now specify
application/json
content-type when data is compressed instead ofoctet-stream
. - Bumped ecmaVersion in test .eslintrc to 8
New features
Added IP address collection and forwarding of metadata headers for upcoming protocol 17.
These features are currently behind the
protocol_17
feature flag until all parts of protocol 17 are implemented.
Improvements
Converted error handling in
CollectorAPI
andRemoteMethod
to callbacks.Previously many of the errors were thrown. For consistency with async errors, these are now handed to the callback instead of thrown. The old behavior could result in a crash under a few circumstances, such as when the agent exceeded a configured maximum payload size. These errors came from
RemoteMethod._safeRequest
. Since these errors are handed to the callback instead of thrown, this bug is no longer a potential.Refactored harvest interactions in preparation for protocol 17 status codes.
New features
Added
protocol_17
feature flag.Flag will be removed and protocol will be hard-coded to
17
once functionality is released on New Relic backend.This release also includes changes to the agent to enable monitoring of Lambda functions. If you are interested in learning more or previewing New Relic Lambda monitoring please email lambda_preview@newrelic.com.
Added
waitForIdle
option toAPI#shutdown
.This new option will make the agent wait for all active transactions to finish before actually shutting down. This does not pre-empt creation of new transactions, so care must be taken to ensure the active transaction pool drains or the agent will never shut down.
Improvements
- Added switch statement indenting standard to eslintrc
- Introduced "warn" level 2 space rule to eslintrc
- Upgraded
@newrelic/test-utilities
to v2.
Bug fixes
Changed totalTime attribute to be in decimal seconds instead of milliseconds for transaction events.
Agent no longer produces spans on ignored transactions.
Previously, the agent would produce distributed tracing span events regardless of the ignored status of the transaction the events originated from.
Extended Restify instrumentation to mark possible transaction names in order to account for async response methods.
Updated
hapi@16
versioned tests to only run on Node 6 and above.Pinned mysql2 to
<1.6.2
in versioned tests.
New features
Added
DatastoreShim#getDatabaseNameFromUseQuery
This new method can be used to extract the database name from
USE
SQL queries.
Improvements
Added link to CONTRIBUTING.md file in README.md
Thanks to Yuri Tkachenko (@tamtamchik) for the contribution.
Added VS Code settings to git ignore.
Fixed bug preventing Distributed Tracing (DT) from fully functioning when Cross Application Tracing (CAT) was disabled.
Renames better-cat integration test organization to be distributed-tracing and updated some test verbiage to use DT or distributed tracing instead of CAT or cross application tracing.
Bug fixes
The agent will no longer break express routers in the case of using regex paths in a list.
Previously, the agent would overwrite the regex with the source of the regex. The agent now makes a copy of the route array and mutates that instead.
Attributes will now be properly propagated to PageView events.
The agent may now be configured to pass attributes along to the browser agent. The attributes that match the include/exclude rules in the
browser_monitor.attributes
section will now be placed on PageView events.
New features
Added
superagent
as built-in instrumentation.This instrumentation just maintains transaction state when using the
superagent
module to make HTTP requests with either callbacks or promises.Updated
noticeError
API 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
PromiseShim
class for instrumenting promise libraries.Support for setting
transaction_tracer.transaction_threshold
to 0 has been added.
Improvements
- Updated DT payload creation to use
primary_application_id
from 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
net
instrumentation 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)
createDistributedTracePayload
andacceptDistributedTracePayload
APIs 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.
Improvements
- Converted File System instrumentation to use newer shim style.
- Converted DNS instrumentation to newer shim style.
- Added tracking of callbacks to DNS instrumentation.
- Converted crypto instrumentation to newer shim style.
- Updated domains instrumentation to use an instrumentation shim.
- Refactored the global instrumentation to use the shim API.
- Ported inspector instrumentation to use an instrumentation shim.
- Ported async_hooks based promise instrumentation over to using shims.
- Added shim types for core instrumentations.
- Improved benchmark comparison output.
- Added
http
benchmark tests.
Bug fixes
Agent instrumentation will no longer interfere with promisification of core methods.
Some core methods expose pre-promisified versions of the methods as a reference on the method itself. When instrumenting these methods, it neglected to forward these references onto the wrapper function. Now the instrumentation will properly forward property look ups to the original method.
Fixed outbound https call to use example.com to resolve integration test issue.
Fixed tests for ioredis 4.0.0 and above.