Fixed shim.wrapReturn to call Reflect.construct in construct Proxy trap. Also including newTarget to work with inherited classes. Added link to New Relic Node.js Examples repository. Excluded install…
Added support for initializeUnorderedBulkOp, and initializeOrderedBulkOp in mongodb v3 instrumentation.Thanks to Denis Lantsman (@dlants) for the contribution. Updated logger to delay logging until co…
Updated AWS metadata capture to utilize IMDSv2. Fixed link to discuss.newrelic.com in README. Updated minimum Node version warning to output current Node version from process. Bumped @newrelic/native-…
Bumped @newrelic/aws-sdk to ^4.1.1. Upgraded @newrelic/test-utilities to ^6.3.0.Includes helpers.getShim so sub packages properly execute. Resolved dependabot and certain npm audit warnings. Automatio…
Updated onResolved instrumentation hook to only be called the first time we see a specific module filepath resolved. Removed tracer.segment in place of direct usage of context manager. Fixed an issue …
Added onResolved instrumentation hook to apply instrumentation prior to module load.This hook fires after the module filepath has been resolved just prior to the module being loaded by the CommonJS mo…
Fixed issue where unhandled promise rejections were not getting logged as errors in a lambda execution
Fixed bug where failure to retrieve CPU/Memory details for certain Linux distros could result in a crash.parseProcCPUInfo and parseProcMeminfo now check for null input prior to processing. Updated REA…
Added full support for Fastify v2 and v3. Fastify instrumentation is now GA.Removed fastify feature flag. Instrumented Fastify routes by wrapping addHook. Added middleware mounting for fastify v3. Fix…
Cross Application Tracing (CAT) has been deprecated and will be removed in a future major release. For applications that explicitly disable Distributed Tracing (DT) to leverage CAT, we recommend migr…
Enabled Distributed Tracing (DT) by default.Added ability to configure the maximum number of spans that can be collected per minute via span_events.max_samples_stored and environment variable NEW_RELI…
Added a new feature flag unresolved_promise_cleanup that defaults to true only when new_promise_tracking feature flag is set to true. If disabled, this will help with performance of agent when an app…
Added necessary instrumentation to support v4 of mongodb.Explicitly enabled APM for mongodb instrumentation(client.monitorCommands = true). Fixed issue where Promise based pg.Client.query timings were…
Added official parity support for Node 16. : Dropped Node v10.x support. For further information on our support policy, see: https://docs.newrelic.com/docs/agents/nodejs-agent/getting-started/compatib…
Fixed bug where promise-based cursor methods would not properly measure the duration of execution
Moved all integration tests that required secrets to the smoke folder. Fixed LASP/CSP tests so they don't skip on runs where secrets are available. Modified self-signed SSL cert to use 'localhost' ins…
Added default support for config files with a 'cjs' extension (newrelic.cjs) in addition to newrelic.js.Thank you to @Maddemacher for the contribution!. Added ability to specify a custom config file n…
Added flaky_code and success_delay_ms handling of flaky grpc connections to infinite tracing. Logged all New Relic metadata env vars at startup
Fixed issue with new_promise_tracking feature flag functionality where segments for ended transactions would get propagated in certain cases by promises that had no continuations scheduled (via await …
Added new feature-flag 'new_promise_tracking' which enables cleaning up of segment references on native promise resolve instead of destroy. Includes usage of async-await. This can be enabled via featu…
Bumped @grpc/grpc-js to ^1.2.11. Bumped @grpc/proto-loader to ^0.5.6
The NEW_RELIC_NO_CONFIG_FILE environment variable is no longer needed to run the agent without a configuration file.If a configuration file is used with agent configuration environment variables, the …
Removed requirement to configure application name when running in AWS Lambda (serverless mode).Currently New Relic doesn't leverage the application name for Lambda invocations. The agent now defaults …
Bumped @newrelic/aws-sdk to ^3.1.0
Added workflow for publishing to npm when a v* tag is pushed to the repo. Fixes resolveMx test by using example.com for a valid exchange
Added Fastify v3 support. Upgraded grpc version
Fixes a bug where the http.statusCode attribute was not being captured for an async invoked lambda. Fixed typos in code comments, documentation, and debugging logger messages. Thank you @TysonAndre fo…
Fixed a bug where spans queued up during backpressure situations would be improperly formatted and ultimately dropped when sent to an Infinite Tracing trace observer. Updated @grpc/grpc-js to version …
Added official parity support for Node 14. Dropped Node v8.x support. For further information on our support policy, see: https://docs.newrelic.com/docs/agents/nodejs-agent/getting-started/compa....Re…
Fixed issue where gRPC connection used for infinite tracing could throw if the server shutdown during disconnect of an existing connection. Fixed bug where errors would still be collected for transact…
Removed lodash as a development dependency. Check for named pipe existence before each flushThis removes the cached value used in 6.13.1
Fixed named-pipe check for lambda invocations to avoid race-condition.Named-pipe existence will now be checked just prior to first write and then cached
Added ability for the agent to write to a named pipe, instead of stdout, when in serverless mode
Resolves an issue where transaction traces will still capture the request URI when the Node.js agent is configured to exclude the 'request.uri' attribute. This can be problematic for certain customer…
Updated guidelines and templates for contributing to the project. Updated SECURITY.md with coordinated disclosure program link. Upgrade async to v3.2.0. Special thanks to Yohan Siguret (@Crow-EH) for …
Updated to Apache 2.0 license. Added CODE_OF_CONDUCT.md file. Streamlined README.md file. Updated CONTRIBUTING.md file. Added additional guidance to bug report template. Added copyright headers to all…
Additional Transaction Information applied to Span EventsWhen Distributed Tracing and/or Infinite Tracing are enabled, the Agent will now incorporate additional information from the Transaction Event …
Added AWS API Gateway V2 support to Lambda instrumentation. Added 'transaction.name' intrinsic to active span at time transaction name is finalized.This enables finding transaction name for traces tha…
Bumped @newrelic/native-metrics to ^5.1.0.Upgraded nan to ^2.14.1 to resolve 'GetContents' deprecation warning with Node 14. This version of the native metrics module is tested against Node 14 and inc…
Added synthetics headers to transaction event intrinsics for Distributed Tracing. Fixed stale comment documentation with regards to segment recording
Added a configurable-length span queue to Infinite Tracing: infinite_tracing.span_events.queue_size.The queue length can be modified to balance the needs of keeping full traces against trade-off of me…
Added support for Infinite Tracing on New Relic Edge.Infinite Tracing observes 100% of your distributed traces and provides visualizations for the most actionable data so you have the examples of erro…
Added error attributes to spans.The public api method noticeError() now attaches exception details to the currently executing span. Spans with error details are now highlighted red in the Distributed …
Support new http[s] get/request function signature in Node v10+. Added the following Span attributes:http.statusCode. http.statusTextThe above attributes will be replacing the following attributes:ht…
Removed calls to OutgoingMessage.prototype._headers in favor of using public getHeaders API (thanks to @adityasabnis for bringing this to our attention). Removed engine upper-bound to enable easier ex…
Added support for W3C Trace Context, with easy upgrade from New Relic trace context.Distributed tracing now supports W3C Trace Context headers for HTTP protocols when distributed tracing is enabled. O…
Bumped @newrelic/aws-sdk to v1.1.1 from v1.0.0. https://github.com/newrelic/node-newrelic-aws-sdk/blob/master/CHANGELOG.md Notable improvements include:Added official support for API promise calls, fi…
Added getLinkingMetadata() method to the API.This new method can be used to retrieve the identifying information for the agent and current active span and trace. Please consult the documentation for m…
Added @newrelic/aws-sdk module to agent for auto-include on install. Added splitting of application name using semicolons in the env var. Instrumented connection.execute for mysql2
Added official parity support for Node 12.Exception: Errors resulting in unhandled rejections will no longer be scoped to the transaction that was active when the rejected promise was created.As of No…
Added diagnostic code injector.The agent may now be configured to make transaction state checks via code injection. This may be turned on by setting code_injector.diagnostics.enabled to true. While th…
Event data is now sent to New Relic every five seconds, instead of every minute. As a result, transaction, error, and custom events will now be available in New Relic One and Insights dashboards in ne…
Implements Expected and Ignored Errors functionality. Adds support for scoped package name introduced in hapi v18 (@hapi/hapi).This will provide functionality at parity with instrumentation for hapi v…
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 (…
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 c…
serverless_mode feature flag is now enabled by default. Added instrumentLoadedModule method to the API, allowing end-users to manually apply an instrumentation to a loaded module. Useful for cases whe…
Modifies MiddlewareSpec route property to allow functions. Defers route processing and segment naming until just before needed (each middleware invocation)
Added getStatusName to NameState.Now web transactions will be named after known status code messages (404, 405, and 501). Added appendPath option to MiddlewareSpec
Fixed bug where agent would stop sending data to New Relic servers when a connectivity issue was encountered. The agent will no longer crash the process in the event of unexpected calls to the harvest…
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. Th…
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
Updated log message for not adding attributes and change the log level to debug. Fixed an issue where exclusive time would be improperly calculated in some cases
Added product attribute to existing datastore instrumentations. Added db.collection to datastore span event attributes
Added SNS to message shim library names. Added check for collect_span_events in config sent from the server on connect.Collection of span events can be disabled from the server configuration, but not …
Added span_events and transaction_segments attribute destinations.Span event and segment attributes can now be filtered using the same include/exclude config rules as other types. See agent attribute …
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_secur…
Added Neptune to the known database names
Added new shim type: ConglomerateShimThis shim class is useful for instrumenting modules which implement several service interfaces of different types
Dropped support for Node versions less than 6. Agent no longer creates transactions when in a stopped, stopping or errored state. Removed public API methods that have been deprecated since Agent v2: c…
The agent now reacts to failed New Relic requests based on response code, as opposed to parsing an exception message in the response body
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
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…
Added DatastoreShim#getDatabaseNameFromUseQueryThis new method can be used to extract the database name from USE SQL queries
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 not…
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 t…
Implemented enforcement of max_payload_size_in_bytes config value.Any payload during the harvest sequence that exceeds the configured limit will be discarded. Added JSON-formatted output to benchmarks…
Added support for distributed tracing.Distributed tracing lets you see the path that a request takes as it travels through your distributed system. By showing the distributed activity through a unifie…
Added full support for Node v10. Added instrumentation for crypto.scrypt. Added instrumentation for fs.realpath.native. Added instrumentation for process.setUncaughtExceptionCaptureCallback
The agent will now properly remerge event data on collection failure
Feature flags may now be set from environment variables.Using the naming convention NEW_RELIC_FEATURE_FLAG_<feature flag name in upper case>
Replaced trusted_account_ids array with trusted_account_key. Added node v10 to the test matrix
Added nonce option for newrelic.getBrowserTimingHeader()This allows people to pass in a string to be injected as the nonce property of the generated script tag. Special thanks to João Vieira (@joaovie…
Added more tests for transaction naming with Restify
Added an option for using the finally method on promises for instrumentation.The promise instrumentation would use Promise#finally if available. This change is in response to Node v10 promises calling…
Make require() statements explicitly reference package.json as a .json file
Fixed metric merging when using debug.internal_metrics.The debug metrics cache would cause timestamps for harvested metrics to get stuck at agent startup. This will no longer happen, and the debug cac…
Updated use of fs.unlink without a callback to fs.unlinkSync.As of Node v10, the callback is no longer optional, which was causing a false test failure. Fixed access to properties on promisified metho…
Optimized unhandledRejection reporting when using async_hooks. Replaced all uses of util._extend with Object.assign. Completed TODOs regarding the Node 0.10 and 0.12 deprecation. Added PriorityQueue s…
Added PriorityQueue class for collecting events.This replaces the Reservoir class for event sampling. Using priority sampling allows the agent to maintain randomness across a given time period while i…
BREAKING: Updated the version of https-proxy-agent to v2.x - Dropped support for v0.10 and v0.12 of node.The version of https-proxy-agent used in the agent has a known security issue you can read abou…
Added a type check to attribute validation, restricting values to primitive types (but not undefined).Previously the agent was only enforcing byte limits on string values, resulting in overly large ar…
Added newrelic.startSegment(), which replaces newrelic.createTracer().This new API method allows you to create custom segments using either callbacks or promises
Added @newrelic/koa as a dependency.This introduces instrumentation for Koa v2.0.0 or higher. It will be treated as first-party instrumentation within the agent, but publishing it as a separate module…
Promise based web framework middleware instrumentation now supports callback based sequencing.Previously, a promise based middleware was assumed to continue to the next middleware once the promise it …
Removed the ssl configuration option.TLS is now always used in communication with New Relic Servers. The ssl configuration value and NEW_RELIC_USE_SSL environment value are no longer used. Setting eit…
Security bulletin NR18-06:Fixes issue introduced in 2.8.0 where the agent may have captured all transaction attributes, even with High Security Mode enabled on the account. This may have included sens…
This release is deprecated due to an issue where the agent may capture transaction attributes regardless of agent settings. If you are using this release, upgrade your agent to agent version 2.9.1 or …
This release is deprecated due to an issue where the agent may capture transaction attributes regardless of agent settings. If you are using this release, upgrade your agent to agent version 2.9.1 or …
Changed attributes.enabled to true by default.In the previous version we defaulted this to false to maintain parity with capture_params which defaulted to false. However, this is a invalid parity beca…
Added agent attribute filtering via include and exclude rules.Agent attributes can now be controlled using fine grained include and exclude rules. These rules, described below, replace capture_params …
Added regression test for promise instrumentation and stack overflows
Added transaction_tracer.hide_internals configuration.This configuration controls the enumerability of the internal properties of the agent. Making these properties non-enumerable can have an impact o…
Added hapi v17 instrumentationHapi v17 added support for promise-based middleware which broke transaction tracking in the agent. This caused issues in naming, as the agent will name the transaction af…
Added Peter Svetlichny to the contributors list!
Added promise benchmarks to test non-async_hooks instrumentation. Added logging for external calls made outside of a transaction. Added logging for when unhandledRejection is noticed. Improved perform…
Instrumentation will now only modify the arity of wrapped functions when needed.This can be controlled with the matchArity property on a WrapSpec. Disabling arity matching has a significant, positive …
Added Node 9 to test suite. Removed problematic tests for ancient version of Hapi (7.1). Document purpose of throw in tracer to prevent developer confusion. Added script for running agent micro benchm…
Agent will attempt to reconnect to the collector forever after backing off to 5 minute delays
The agent will now support the Node 8 await keyword by default
Hapi handlers will now preserve the defaults associated with them.Previously when wrapping handlers, the agent would drop the associated defaults on the ground, these are now properly forwarded to the…
Added metrics for enabled/disabled feature flags
Added support for ignoring ranges of status codes.The configuration error_collector.ignore_status_codes can now take ranges of numbers. For example, ignore_status_codes: ['400-404'] would ignore 400, …
Improved metadata collection for AWS, Azure, GCE, and Pivotal Cloud Foundry
Improved documentation for newrelic.start*Transaction and TransactionHandle.Formatting for the startWebTransaction and startBackgroundTransaction methods was fixed and documentation for the Transactio…
Fixed issue with transaction events not including correct duration values.This issue was introduced in v2.0.0, and it has affected web transactions histogram and percentile charts. Fixed issue with Re…
The New Relic Node Agent v2 is here!This release contains major changes to the agent instrumentation API, making it easier to create and distribute your own instrumentation for third party modules. Ch…
Node v8 is officially supported with the exception of async/await.Support for the new async/await keywords is coming in a future release. Until this support is added, New Relic does not support and hi…
Fixed a transaction state loss introduced in Node 7.10.0 when using net.createConnection.Added a new segment for net.connect, net.createConnection, and http.Agent#createConnection. Sockets created wit…
Dropped support for Express <4.6
Error messages are redacted in High Security Mode now. New configurations were added for disabling some New Relic API methods. These default to enabled and are all disabled in High Security Mode.api.c…
When.js hooks similar to Promise.onPotentiallyUnhandledRejection now function as intended.Previously, hooks like Promise.onPotentiallyUnhandledRejection would not work due to the way the agent wraps t…
Fixed issue with when.js instrumentation not preserving all properties on wrapped Promise constructor.Previously, the when.js instrumentation would cause an unhandled exception when private methods on…
We're excited to announce the addition of a new Node VMs page to the UI that provides a curated view of the cpu, memory, garbage collection, and event loop metrics that we have added over the past sev…
Added support for recording interfaces that return promises instead of taking callbacks. See RecorderSpec.promise for more details.Thanks to Gert Sallaerts (@Gertt) for this contribution
This release is the same as v1.37.1 except it has been re-published to npm due to an issue with shrinkwrapping the previously published package.
Agent now wraps emit on http request/response objects instead of relying on listeners. Improved documentation for newrelic.noticeError() and ignore_status_codes configuration.The documentation now mak…
The agent now reports event loop metrics on supported platforms.The agent will now record the number of event loop ticks per minute and CPU time spent in each tick. This feature requires v2.1.0 or hig…
Fixed issue with timing Redis operations when called without a callback.Previously these operations would continue to be timed until the transaction ended, and as a result reported incorrect times. Tr…
Rewrote the cassandra-cql and memcached instrumentations using the DatastoreShim. Improved instrumentation matching.Previously, the agent would determine which instrumentation would run for a given mo…
Stop collecting URL parameters from the HTTP referer headerThe Node agent collects the request headers during an error trace to help determine the root cause of problems. The referer header is the URI…
Incorporated fixes from 1.36.1
The @newrelic/native-metrics module is now an optional dependency of the agent.Now npm will attempt to install the module when the agent is installed. If it fails for whatever reason, the agent itself…
Added CPU metric gathering to Node.js versions <6.1As of this release the agent will attempt to gather CPU usage metrics via the optional @newrelic/native-metrics module. Added additional memory usage…
Removed automatic installation of @newrelic/native-metrics.Due to the way npm v3+ flatten dependencies, a bug in the version of npm packaged with Node v5, and npm v1's ungraceful handling of scoped pa…
The agent will now report garbage collection statistics on supported platforms.On node versions 0.10, 0.12, 4, 6, and 7 the agent will now record the time spent in, the number of, and type of garbage …
The agent now collects CPU metrics when running under Node 6.1.0 and higher.Node 6.1.0 introduced an API to get CPU time usage of the running Node process. We are now collecting this data as new metri…
Incorporated new features and fixes from v1.30.4, v1.30.5, v1.31.0, v1.32.0, and v1.33.0
The agent now collects database instance information for Memcached operations.This information (database server and database name) is displayed in transaction traces and slow query traces
The agent now collects database instance information for MySQL and MongoDB operations. This information (database server and database name) is displayed in transaction traces and slow query traces. Da…
The agent now collects database instance information for PostgreSQL and Redis operations. This information (database server and database name) is displayed in transaction traces and slow query traces
Fixed issue with aborted requests causing the agent to crash in some cases.Previously the agent would crash when the client request aborted before Express server sent a response and encountered an err…
Fixed format of external calls metric.External service URLs will now be formatted the same as they are in the originating application. Improved instrumentation of native promises.Native promises now u…
Incorporated fixes from v1.30.1, v1.30.2, and v1.30.3
This release is the same as v1.30.2 except it has been published using npm 2 to make sure all nested bundled dependencies are included.
Added instrumentation of the param() function in Express.The agent will now create metrics and transaction segments when the Express param() function is called as a part of a route. This also fixes an…
The shutdown method is now on the stub API.Previously when the agent was disabled the stub API passed back on require did not have the shutdown method. Thanks goes to Vlad Fedosov (@StyleT) for this c…
You must read and agree to the Beta Agreement before using this beta version of the agent.
A number of improvements and fixes to transaction naming rules.Added attributes terminate_chain, replace_all, and precedence to allow more control over how naming rules are executed. Please see the up…
You must read and agree to the Beta Agreement before using this beta version of the agent.
Domain error handlers will now be scoped to the transaction the error occurred in.Previously, the 'error' event handlers would not be scoped to a transaction causing our API methods to not associate d…
Improved agent startup speed by 10% by simplifying environment checks.Removed prolific fs.exists and fs.stat checks, instead simply handling the error for mis-used files which greatly reduces disk acc…
Director instrumentation that will now name the transaction correctly, as well as create segments corresponding to the handlers registered with director. Transaction naming refactor - this should clea…
The following attributes are now sent to Insights along with transaction events: databaseDuration, databaseCallCount. Updated Redis instrumentation to work with version 2.x of the redis module. Improv…
Express middleware metrics are now enabled by default
Fixed duplicated external transactions for https requests in Node > 0.10.Any external transaction that used the https module to make the request would appear twice in transaction traces due to https.r…
Fixed issue with checking listener count for uncaughtException and unhandledRejection global events. Fixed a number of issues with promise instrumentation of Bluebird
Reworked promise instrumentation to be more reliable and reusable.Promise instrumentation has been rewritten to be applicable to any A+ compliant promise library. This change brings more consistent in…
Added ioredis instrumentation.Big thanks to Guilherme Souza (@guilhermef) for the contribution!. Added a new shutdown call to the public API.Thanks to @echmykhun for the contribution!The new shutdown …
Added capturing errors from the unhandledRejection global event.If a promise is rejected with an error, and the error is not handled, the error will now be reported to New Relic
Express instrumentation has been fundamentally reworked.
Added instrumentation of Bluebird promises.Previously, the transaction state could get lost when multiple promises resolved close to each other. Fixed issue with PostgreSQL native instrumentation.Prev…
Added more HTTP request/response parameters to transactions.The agent now collects additional request/response HTTP headers (e.g. contentType, HTTP method, response status code). These can be used to …
Fixed crashing bug on unhandled rejections in Q.Previously, the agent would cause the process to crash in the event of an unhandled rejection.Thanks to @mdlavin for this fix!
Added Q instrumentation.The node agent now accurately records programs using Q for promises.Thanks to @mdlavin for the contribution!. Added node-mysql2 support.Thanks to @jhollingworth for adding node…
Corrected an issue where the agent would sometimes crash looking up the port of the HTTP server that a request came from.Previously, the agent assumed the HTTP server would always have an address, unf…
Added support for the new Response Time Line and better representation of asynchronous data.This has many implications in the UI. The first is the Application Overview, in the past we've always just s…
Error totals are now reported.The agent now reports metrics that reflect the total number of errors that have occurred in web and background transactions
Advanced Analytics for APM ErrorsWith this release, the agent reports TransactionError events. These new events power the Advanced Analytics for APM Errors feature. The error events are also available…
newrelic.getBrowserTimingHeader() API now includes the full transaction name.Previously, the agent would use a fragment of the transaction name, causing Browser Monitoring transactions and APM transac…
The New Relic Node Agent now officially supports Node v4!We are excited to announce that the New Relic Node Agent officially supports Node v4.x! We've tested the agent across all major versions of Nod…
Removed client support of the RC4 stream cipher for communicating with the New Relic servers.The RC4 cipher is considered unsafe and is generally being deprecated. Fix for logging version number in Ex…
Express and Connect instrumentation will no longer crash on Node 4As of ES6, the Function.name attribute will track if the function is a getter/a setter/is bound to (i.e. fn.bind().name -> 'bound ' + …
Errors will now respect its transaction's ignore state.When ignoring transactions, related errors will now also be ignored. The agent can now handle immutable and frozen error objects.In rare cases th…
Corrected a defect in the handling of uncaught exceptionsThis defect was surfaced in versions of node that did not have process._fatalException, namely v0.8. When an uncaught exception occurs, the age…
Moved concat-stream from dev dependencies to production dependencies.Last week we released v1.21.0 but forgot to move a dependency. We've removed v1.21.0 from npmjs.org and this release contains the c…
. Use v1.21.1 or higher instead. Support for display host names.The agent now has configuration settings to allow configuration of custom host names. Set process_host.display_name to enable this.If th…
Fixed a bug where custom events weren't being sent.In a refactor of our data collection cycle, we omited the custom events from the list of commands, this is now fixed. Fixed a very rare bug where the…
Fixed a bug in custom event recording limits.Previously, the agent would use the config value for max events (default of 1000) for the first harvest of custom events, then would use an internal defaul…
Triaged a defect in native promise instrumentationTransactions used to be lost acrossed chained .then calls. The way promises are wrapped has been changed to fix this issue. Added support for Slow Que…
Fixed an issue with Error tracingPreviously the agent could sometimes cause issues with user serialization of error Âobjects after they passed through the error tracing code. MongoDB cursor count meth…
Fixed a bug in native ES6 Promise instrumentation.Previously the Promise instrumentation would cause instanceof Promise to return false even if the object was a promise. This also caused an incompatib…
Filesystem interactions are now recorded in metricsThe time spent in filesystem functions during a transaction will now be displayed in the transaction overview page per operation
Fixed a bug in environment variable based configuration.Previously the agent would parse the NEW_RELIC_APDEX environment variable as a string rather than a float this could cause data to be sent to Ne…
Fixed an inverted if in config loading.Previously, the config loader would log a warning on success, rather than failure. Configuration loading works as expected now. Fixed a bug in process.nextTick i…
Wrapped all our calls to JSON.parse in try/catch.Previously, only calls that were considered unsafe due to external data input were wrapped. We are taking a more defensive stance and wrapping them all…
Names assigned to errors via Error.name now appear in the UI. Child segments of external calls will now be nested correctly. The request_uri attribute on errors will now only include the path without …
Reduce agent CPU overhead by omitting setImmediate from traces. Mitigate a Node.js memory leak that can occur during TLS connections
Fixed a bug where external requests report times longer than the transactions that initiated them. External request segments are now always ended when an error occurs. Fixed a bug that produced incorr…
Fixed a bug that interfered with listing the routes in Express apps. Fixed a bug that caused custom transaction names to appear as "unknown". Added more log detail when instrumentation fails to load
Added instrumentation support for Node.js PostgreSQL driver pg 4.x. Added instrumentation support for Datastax's Cassandra driver. Updated Oracle instrumentation to collect new datastore metrics
Added instrumentation for modules in Node core. Added support for native Promises in Node.js 0.12 and io.js 1.x. Traces will now contain separate segments for async waits and callbacks. Updated instru…
Fixed a bug in the logger to respect the configured log level in all cases
Fixed a bug in hapi 8 view segments. Previously, the segments weren't being ended when the view ended. Added a configuration option to completely disable logging. logger.enabled defaults to true, if s…
Enable http/https proxy features on all supported Node versions.Supported versions: Node.js 0.8, 0.10, 0.12 and io.js 1.x. Fixed a bug in vhost detection in Hapi 8. This bug would result in a crash fo…
Now New Relic Synthetics transaction tracing is on by default.The previous release had the Synthetics transaction tracing feature turned off by default
Added support for New Relic Synthetics transaction tracing.New Relic Synthetics monitors your site from around the world. When you use Synthetics to monitor your Node application, up to 20 detailed tr…
Preliminary Node.js 0.12 support.HTTP proxies are not supported on 0.12 yet. We don't recommend running the Agent on Node.js 0.11.15+ in production, but if you are testing on it, please let us know of…
Added an API for recording custom Insights events. Read more about this in our documentation
Fixed a crash in express instrumentation in the handling of sub-routers. Fixed a crash in http outbound connections when CAT is enabled and another library has frozen the http request headers. Updated…
The agent now logs the actual error when log file parsing fails. Thanks to knownasilya for this patch!. Fixed a crash where config serialization would fail due to circular objects if domains were enab…
Errors that occur in background transactions now have custom parameters copied onto them in the same manner as web transactions. Memcached instrumentation has been updated to account for additional ar…
Custom web transactions can have their names changed by nr.setTransactionName(). Thanks to Matt Lavin for this patch!. Fixed a bug where Express instrumentation could crash if transaction state was lo…
Improved the Express instrumentation to be more defensive before doing property lookups, fixing a crash that could happen in an exceptional state. Improved logging when the New Relic agent cannot conn…
Added support for Hapi v8. briandela contributed a fix for an crash that would occur when using hapi with vhosts
Fixed a bug that caused some outbound http requests to show up in the New Relic UI as requests to localhost rather than the specified domain. The agent no longer reports errors from outbound http requ…
The node agent now instruments connections to Oracle Databases using the oracle driver. This patch was contributed by ryanwilliamquinn. Fixed an issue that would break kraken apps when the node agent …
Added support for the the aggregate method on mongodb collections. This patch was contributed by taxilian
Fixed a bug in Cross Application Tracing where the agent would sometimes attempt to set a header after headers had already been sent. Replaced the logger with one that is handles file writes properly …
Updated support for hapi 7.2 or higher.Hapi refactored how the server is instantiated and caused the agent to not be able to get transaction names. This release accounts for the update and enables ful…
This release was unpublished from npm due to a bad merge
Added support for Custom MetricsCustom metrics provides a way to send additional metrics up to New Relic APM, which can be viewed with Custom Dashboards. We have two APIs for this, recordMetric(name, …
Fixed a bug that would cause the application to crash on outbound connections when using node 0.8. Fixed a bug that could sometimes cause the application to crash while parsing MySQL queries
Added support for Label CategoriesThe agent now supports setting Labels for your application on a per instance level, using either an environment variable, or a config file setting. https://docs.newre…
Added support for Cross Application TracingThe agent now supports Cross Application Tracing, which allows the New Relic APM UI to display traces that span multiple applications. Fixed a bug that would…
Fixed a type error while checking payload size before reporting to New Relic.When this occurred the agent would fail to send the payload to New Relic. This was more likely to occur in high throughput …
Fixed a bug where mutibyte characters would cause an error when sending data to the New Relic servers
Updated hapi instrumentation to support the recently released v6.9. Fixed a bug where an invalid package.json could cause the agent to crash while it recursed through node_modules gathering version de…
Custom Instrumentation functions now pass through the return value of their passed in callback. Multiple improvements to PostgreSQL instrumentationWhen no callback was detected in the query functions,…
Improved MongoDB find instrumentation.The mongo driver provides many ways to invoke its API and find documents. In previous releases, some API invocations would create transaction trace segments that …
PostgreSQL support via the `pg` driver.The Node.js agent now records the amount of time spent in transactions with PostgreSQL databases. This timing can be viewed in the page within individual transa…
Removed a preemptive DNS lookup of the New Relic servers that could cause errors when behind a proxy
Fix to prevent proxy credentials transmissionThis update prevents proxy credentials set in the agent config file from being transmitted to New Relic
MySQL Pooling SupportBetter support for mysql pooling, including connections that use createPoolCluster and createPool. Previously connections obtained through a pool could potentially be uninstrument…
Custom instrumentationThe agent now allows you to annotate your application code to provide customized instrumentation. This includes the ability to time both web and background transactions, and add …
Fixed a bug in the express instrumentation where if you named an error handler function handle it would cause a recursion depth error
Added a check for invalid characters in the app_name setting.The agent will now emit a warning and disable itself if any application name is invalid. Allowed characters are alphanumerics and certain p…
We now support Cassandra via the node-cassandra-cql driver.New database instrumentation means that we can present you with the timing data for how long those queries take. Thanks to Aaron Silvas from …
Agent now tracks metrics for router queue time. In addition to X-REQUEST-START, the agent now supports X-QUEUE-START header times. This metric will show up as "Request Queueing" in the Overview tab
General release of proxy support for the agent to connect to New Relic.HTTP/HTTPS support from the newrelic module to the proxy. HTTP/HTTPS support from the newrelic module to New Relic. Basic proxy a…
Plain http routes (i.e. routes outside of a framework) now apply config naming rules early. See rules for naming and ignoring requests.This fixes a bug where generating the would not work without a f…
The agent now reports the value of the NODE_ENV environment variable to New Relic.This will show up in your Settings -> Environment tab in APM. The data is being collected for debugging and to aid sup…
Support for instrumenting a standalone express 4 router. See issue 154. Set the default log level to info
Captured parameters for express, restify, and hapi have been normalized.When capture_params is enabled the agent will collect route and query parameters. Previously express and restify only captured r…
Fixed an issue where collected errors did not include captured and custom parameters. Added the environment variable NEW_RELIC_HIGH_SECURITY. This correlates to the high_security setting in your newre…
Client side setting of high_security is now supported.High Security Mode is a feature to prevent any sensitive data from being sent to New Relic. The local setting for the agent must match the server …
New Relic Insights support no longer requires a feature flag. If you are a paying customer, you'll begin to see data show up in Insights as soon as you upgrade to 1.6.0. The agent will send event data…
Fix a bug where if the user disabled the error collector, error count would be carried over harvest cycles instead of reset. This would result in an ever increasing error count until the app was resta…
On connect, the full newrelic module configuration is pushed to New Relic APM. Full config will be visible under the tab, under the button in the APM application page.The reported settings will refl…
Express 4 support.Express 4 apps now have their transactions named correctly. Errors in the middleware chain are properly recorded
Fix issue where dangling symbolic links in the node_modules folder would crash the environment scraper
Upgrade continuation-local-storage dependency to 3.0.0. The newrelic node module uses cls to help join asynchronous transaction segments. The latest cls module includes a fix that prevents contexts fr…
Add high-security compliance for accounts with enterprise security enabled. By default, the agent now works with high-security accounts, whereas previously agents would receive an Access Violation. Ad…
Browser monitoring! Real User Monitoring! Which is also known as RUM! Whatever it's called, it allows you to see how long your pages take to load, not just on the server side, but in the browser! Wow!…
Includes a nearly total rewrite of the connection layer that the module uses to communicate with New Relic's servers:
Always cast ignored status codes to numbers so that people using environment-variable configuration or strings in config still get error status ignored properly. If you disabled server-side configurat…
Support for Spumko's Hapi! This support works with both Hapi 1.x and 2.0.0, and like our Express and Restify instrumentation will automatically name transactions after Hapi paths (get it) and time how…
Before, there were certain circumstances under which an application would crash without New Relic installed, but wouldn't crash with it. This has been fixed, and applications with New Relic installed …
Added support for key transactions and New Relic's new alerting policies. The agent no longer renames transactions for requests that end in error to the gnomic and unhelpful '400/*' (or whatever the f…
Added a new call to the API, .noticeError. See the docs for details, but unlike the other calls on the API, you can use this to pass off errors anywhere in your app, not just from within web requests.…
Added a new setIgnoreTransaction call to the exported API to allow explicit control over whether transactions should be ignored or not. Mark those polling routes to be ignored! Pull your crazy custom …
General Availability release of the Node.js agent. Please review the news.md at the root of the project for all prior release notes. If you are using an older BETA version of the Node.js agent, please…