Node.js Release Notes

Node.js Agent Release Notes

2017, February 22 - 14:54 Download

New Features

  • 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.

Improvements

  • Incorporated fixes and features from 1.36.2, 1.37.0, and 1.37.1.

  • Domains are no longer preemptively instrumented, thus applications that do not use domains will not load the domain module.

    Including the domain module causes a small amount of extra overhead in other core libraries that must keep the domain state set correctly.

2017, February 16 - 17:00 Download

Notes

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.

2017, February 16 - 14:59 Download

Notes

This release has been re-published to npm as 1.37.2. Please use version 1.37.2 or higher.

Improvements

  • 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 makes it clear that errors recorded using noticeError() do not obey the ignore_status_codes configuration value.

  • Removed unused yakaa dependency.

Bug fixes

  • Fixed a bug in normalization rules when replacements do not maintain initial /.

  • Better de-duplication of errors when the same error instance is used multiple times.

  • Server-side naming rules are now applied even when user defined ones have matched.

  • Errors reported outside of a transaction now include their stack trace on the error analytics page.

  • A potential stack overflow in trace serialization has been removed.

  • Fixed an issue with our Express and domain instrumentation related to a loss of transaction state that could result in incorrect transaction names, traces, and events.

  • Nested background transactions now report the correct number of metrics.

2017, February 9 - 11:02 Download

New features

  • 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 higher of the optional @newrelic/native-metrics module, and is supported on Node versions 0.12, 4, 6, and 7.
    You can read more about it on our docs site!

Bug fixes

  • The agent no longer creates a segment for each row returned from a PG query when the pg-query-stream module is used.

  • Internal properties used in our promise instrumentation are now non-enumerable to prevent unexpected keys showing up for clients.

  • Agent now uses safe stringification when encoding payloads in order to prevent an issue with circular references.

  • Fixed issue with the agent holding the process open when retrying to connect to the collector.

Improvements

  • Removed io.js from our test suite, since it has not been supported for some time.

  • Quieted a log message warning users about their own settings.

  • Fixed typo in a log message. Thanks to Dave Bobak (@davebobak) for the contribution.

2017, January 26 - 14:14 Download

Bug fixes

  • 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.

  • Transactions that result in a 404 HTTP error are now named "(not found)".

    Previously these transactions were reported with no name (e.g. get /).

  • When the newrelic.js configuration file is not present, the agent now logs a message to the console and no longer prevents the app from starting up.

2017, January 25 - 11:29 Download

Improvements

  • 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 module being loaded using the basename of the file path. This lead to false positives (e.g. myapp/lib/express.js would trigger the express instrumentation) which we previously just ignored. Matches are now determined using the string passed to require. This means you can now match local relative paths (./lib/something) as well as package-relative paths (amqplib/callback_api).

2017, January 12 - 11:23 Download

Improvements

  • Incorporated fixes from 1.36.1
2017, January 12 - 10:32 Download

Bug fixes

  • Stop collecting URL parameters from the HTTP referer header

    The Node agent collects the request headers during an error trace to help determine the root cause of problems. The referer header is the URI that identifies the address of the webpage that linked to the resource being requested. It is possible that the referer URI may contain sensitive information in the request query parameters. New Relic has found that the query parameters are not properly stripped during the error trace. This update fixes this by stripping the query parameters from the referer in the request header before sending this data to New Relic.

    This release fixes New Relic Security Bulletin NR17-01.

Improvements

  • Improved logging of modules that did not get instrumented.
2017, January 5 - 11:19 Download

New features

  • 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 will still be installed correctly and the rest of the npm install will finish normally.

Improvements

  • Incorporated new features and fixes from 1.34.0, 1.35.1, and 1.36.0
2016, December 21 - 14:15 Download

New Features

  • Added CPU metric gathering to Node.js versions <6.1

    As of this release the agent will attempt to gather CPU usage metrics via the optional @newrelic/native-metrics module.

  • Added additional memory usage classification metrics.

    The agent will now report memory metrics that break down memory by its current use.

    For more information on these features, see our documentation.

2016, December 13 - 12:20 Download

Bug fixes

  • 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 packages we have opted to not automatically install this module.

    If you would like to see native metrics for your application, you can add the @newrelic/native-metrics module to your package.json and the Node Agent will automatically pick it up.

  • Corrected attribution of the Bluebird patch in the last release's notes.

    Thanks to Matt Lavin (@mdlavin) for this correction!

2016, December 12 - 14:00 Download

Notes

This release has been unpublished from npmjs.org. Please use version 1.35.1 or higher.

New features

  • 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 collection cycles. You can read more about it on our docs site!

Bug fixes

  • The agent no longer double counts MySQL query times when using a connection pool.

    Previously, when using a pool of connections a query done through the pool would be recorded as the time it took on the pool, as well as the connection, effectively counting the time twice. This is no longer the case.

  • The agent will no longer lose transaction state across Bluebird's promise.nodify.

    Thanks to Matt Lavin (@mdlavin) for this contribution!

2016, November 10 - 16:26 Download

New features

  • 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 metrics.

  • The agent now has a separate configuration for audit logging.

    Previously the data that the agent sends to the collector was logged only in trace logging mode, making the logs unnecessarily large and noisy. The agent can now include this data independent of the logging level using separate configuration settings.

  • A new API method addCustomParameters() has been added to allow adding multiple custom parameters at once. Thanks to Austin Peterson (@AKPWebDesign) for this contribution!

Improvements

  • Updated tests to run on Node 7.

    Node 7 is officially supported as of the previous release, v1.33.0.

  • The shutdown() API now waits for connection to collect pending data.

    When a flag to collect pending data is provided to the shutdown() method, the agent now ensures a connection to the collector has been established. This is useful when the Node process is short-lived, such as in AWS Lambda.

  • Added running the nsp (Node Security Platform) tool to the test suite to help with detecting security-related vulnerabilities.

Bug fixes

  • The setIgnoreTransaction() API now works for background transactions.

  • Fixed issue with Synthetics result not displaying a link to the corresponding transaction trace.

2016, November 9 - 16:39 Download

Improvements

  • Incorporated new features and fixes from v1.30.4, v1.30.5, v1.31.0, v1.32.0, and v1.33.0.
2016, October 31 - 14:27 Download

New features

  • 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.

Improvements

  • socket.io long-polling requests are now ignored by default.

    Collecting metrics for these requests is typically not desirable since they are frequent and do not represent business transactions. Previously we recommended adding an ignore rule manually. Now it is included by default.

  • Improved test coverage for Postgres and MongoDB instrumentations.

2016, October 20 - 15:05 Download

New features

  • 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.

  • Datastore instance configuration can now be done through environment variables. These can be set through NEW_RELIC_DATASTORE_INSTANCE_REPORTING_ENABLED and NEW_RELIC_DATASTORE_DATABASE_NAME_REPORTING_ENABLED

Bug fixes

  • The agent will no longer crash the process when an express param handler is executed when a transaction is not active.
2016, October 12 - 16:24 Download

New features

  • 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.
2016, October 4 - 14:27 Download

Bug fixes

  • 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 error.

Improvements

  • Upgraded integration tests to work with the latest version of node-tap.
2016, September 27 - 15:00 Download

Improvements

  • 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 use the same instrumentation as Bluebird, making instrumentation easier to maintain and more consistent across libraries.

Bug fixes

  • Fixed issue with reloading normalization rules from the server.

    Upon reset, the agent will clear the existing naming rules, removing any vestigial rules that may have changed or been disabled.

  • Fixed issue with key transactions Apdex metric.

    Key transactions now effect the global Apdex metric according to their own ApdexT instead of the default ApdexT value.

  • Fixed issue with closing transactions when the request is aborted.

    Previously, aborted requests would result in the transaction remaining open indefinitely. Now the transaction will be correctly finished and its resources freed.

2016, September 16 - 15:00 Download

Improvements

  • Incorporated fixes from v1.30.1, v1.30.2, and v1.30.3.

Pages