Node.js release notes

Node.js agent release notes

Thursday, April 16, 2015 - 12:02 Download


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

  • Timers attached to global are now instrumented correctly in all version of io.js.

    As of v1.6.3 of io.js, timers are no longer lazily loaded from the timers module, and are placed directly on the global object. The agent now takes this change into account and accurately wraps the timer methods.

  • Improved handling of cross-application tracing headers.

    Paths that include multibyte characters will now show up correctly in cross application maps

Thursday, April 2, 2015 - 12:00 Download


  • Names assigned to errors via now appear in the UI.

    Previously, the name of an error in the UI appeared as or with a default of Error. Now the common pattern of is respected and takes precedence.

  • Child segments of external calls will now be nested correctly.

    This change causes segments that make up external calls to nest under the call correctly. Previously, the child segments appeared as siblings to external calls.

  • The request_uri attribute on errors will now only include the path without any parameters.

    This behavior now matches the other New Relic agents.

Friday, March 27, 2015 - 12:00 Download


  • Reduce agent CPU overhead by omitting setImmediate from traces.

    The change to setImmediate makes that function behave the same way as nextTick and other frequently-called functions that are already elided from Transaction Traces.

  • Mitigate a Node.js memory leak that can occur during TLS connections.

    There is an outstanding Node.js Core memory leak involving TLS connections. Clients specifying certificates, such as the New Relic Agent, quickly reveal this leak. We now mitigate this issue by using the default client certificates where possible. A new log message will be printed when the TLS memory leak workaround can not be used, such as when using a custom certificate with an HTTPS proxy.

Thursday, March 19, 2015 - 12:00 Download


  • 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 incorrect transaction names for some routes in express2 and express3.

Thursday, March 12, 2015 - 13:00 Download


  • 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.
Thursday, March 5, 2015 - 15:50 Download


  • 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.
Wednesday, February 25, 2015 - 15:25 Download


  • 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 instrumentation for MongoDB to support previously un-instrumented methods for 1.x and 2.x versions of the node-mongodb-native driver.
  • Fixed a bug in the recording of transaction metrics. Previously this would cause a duplicate of the transaction metric to be displayed in the transaction breakdown chart
  • Unified view for SQL database and NoSQL datastore products.

    The response time charts in the application overview page will now include NoSQL datastores, such as Cassandra and MongoDB,and also the product name of existing SQL databases such as MySQL, Postgres, Oracle, etc. For existing SQL databases, in addition to the existing breakdown of SQL statements and operations, the queries are now also associated with the database product being used. For NoSQL datastores, such as Cassandra and MongoDB, we have now added information about operations performed against those products, similar to what is being done for SQL databases.

    This new unified Databases page will enable the filtering of metrics and operations by product, and includes a table listing all operations.

    Because this introduces a notable change to how SQL database metrics are collected, it is important that you upgrade the agent version on all hosts. If you are unable to transition to the latest agent version on all hosts at the same time, you can still access old and new metric data for SQL databases, but the information will be split across two separate views.

Friday, February 20, 2015 - 22:23 Download


  • Fixed a bug in the logger to respect the configured log level in all cases.
Friday, February 20, 2015 - 15:20 Download


  • 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 set to false it wont try to create the log file.

Friday, February 13, 2015 - 13:19 Download


  • 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 for users of vhosts.

Friday, February 6, 2015 - 15:39 Download


  • Now New Relic Synthetics transaction tracing is on by default.

    The previous release had the Synthetics transaction tracing feature turned off by default.

Friday, February 6, 2015 - 14:37 Download


  • 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 transaction traces will now be captured every minute when the application is probed from Synthetics. To learn more about this feature, visit our documentation.

Friday, January 30, 2015 - 12:33 Download


  • 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 any issues you encounter.

Friday, January 23, 2015 - 13:57 Download


  • Added an API for recording custom Insights events. Read more about this in our documentation
Friday, January 16, 2015 - 11:53 Download
  • 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 version checking to allow versions of the runtime >= 1.0.0. Thanks to Mark Stosberg for this patch!

Friday, January 9, 2015 - 12:12 Download


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

Tuesday, December 30, 2014 - 15:17 Download


  • 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 arguments that might be passed to the command function that the agent wraps.

Monday, December 22, 2014 - 14:32 Download


  • 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 lost in a sub router.

Thursday, December 18, 2014 - 14:00 Download


  • 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 connect to New Relic servers.

  • Make Cross Application Tracer header injection less aggressive fixing interaction with other libraries such as riak-js.

Thursday, December 11, 2014 - 18:17 Download


  • Added support for Hapi v8.

  • briandela contributed a fix for an crash that would occur when using hapi with vhosts.