SNSto message shim library names.
Added check for
collect_span_eventsin config sent from the server on connect.
Collection of span events can be disabled from the server configuration, but not enabled.
Segment#toJSONto be more readable.
try/catchto config initialization to safely handle invalid setting combinations.
When an error is caught the agent is marked as disabled, which ultimately returns a stub API and keeps the process running.
String truncation is now done using a binary search over the byte length of the string.
Previously this truncation was done using a linear search for the proper byte length.
Optimized segment and span attribute filtering.
Fixed issue where
shim.createSegment()could result in modifying the parent when opaque.
Fixed issue where
http-outboundwould modify parent segments when parent is opaque.
Moved processing of exclusive time attribute out of
finalizeto only be calculated once.
Previously, serializing a segment would result in calculating and caching exclusive time which could result in issues if serialized prior to ending.
Span event and segment attributes can now be filtered using the same include/exclude config rules as other types. See agent attribute configuration for more details.
metadatafield to connect payload, for collecting
NEW_RELIC_METADATA_-prefixed environment variables.
Added DynamoDB to datastores.
opaqueoption to datastore operation spec.
Added Kubernetes utilization detection.
readable-streamto next major version.
These modules had previously been held back due to support for Node <6. Since v5.0.0 we dropped that support thus enabling these updates.
Added SQS as a supported messaging library name.
Enabled tracking of callback via
message-shim.recordConsumewhen no messageHandler provided.
makerules with npm scripts.
The agent will now consistently harvest in all response cases when in serverless mode.
Previously, the agent's harvest was in a race with process suspension in the event of an uncaught exception, or responding without calling a callback. A synchronous harvesting process is now used to circumvent this racing issue.
Fixed issue with socket connection errors causing the agent to stop attempting to connect at startup.
Fixed opaque segment functionality for
Fixed opaque segment functionality for
Removed installation of Oracle container test scripts.
config.high_security === truechecks with general truthiness checks.
The agent will now treat any truthy value in the
high_securityconfig setting as if it is enabled.
- 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.
- Added Neptune to the known database names.
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.
Removed outdated config files.
Removed old, outdated examples.
Fixed an issue where old CAT headers would be injected while distributed tracing was enabled.
This would happen if both
distributed_tracing.enabledwere set to
trueand an instrumentation disabled tracing for an outbound request.
Fixed access to
Added new shim type:
This shim class is useful for instrumenting modules which implement several service interfaces of different types.
Disabled logging by default when serverless_mode is enabled. Please note serverless/lambda monitoring is not yet officially released.
nulltrace attribute values are no longer sent to New Relic.
This change brings the Node agent in alignment with the behavior of other language agents.
Dropped support for Node versions less than 6.
Agent no longer creates transactions when in a
Removed public API methods that have been deprecated since Agent v2:
(s). See the Migration Guide for more information.
TransactionHandle#ignoreshould be used instead.
Released several feature flags. These flags are no longer used:
This configuration value controls the use of the
@newrelic/native-metricsmodule. When set to
falsethe agent will not attempt to load that module.
Custom metrics recorded via
incrementMetricAPI 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
Dropped support for
Removed deprecated configuration settings
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.
- The agent now reacts to failed New Relic requests based on response code, as opposed to parsing an exception message in the response body.
- 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.
npm auditin security checks.
- Collector now specify
application/jsoncontent-type when data is compressed instead of
- Bumped ecmaVersion in test .eslintrc to 8
Added IP address collection and forwarding of metadata headers for upcoming protocol 17.
These features are currently behind the
protocol_17feature flag until all parts of protocol 17 are implemented.
Converted error handling in
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.
Flag will be removed and protocol will be hard-coded to
17once 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 email@example.com.
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.
- Added switch statement indenting standard to eslintrc
- Introduced "warn" level 2 space rule to eslintrc
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.
hapi@16versioned tests to only run on Node 6 and above.
Pinned mysql2 to
<1.6.2in versioned tests.
This new method can be used to extract the database name from
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.
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.attributessection will now be placed on PageView events.