At New Relic, we believe that Application Performance Monitoring (APM) should be a key component in new technology evaluations. We are committed to supporting the Node.js ecosystem and providing our customers with timely support for the latest and greatest versions of Node. The latest major version update of Node, version 7, was released on October 25, and we are happy to say that our agent has supported it since the week after its release, starting with agent version 1.33.0.
Odd and even Node release cycles
With the Node 7 release, Node v6 has become the new long-term support (LTS) version. Node 7 itself, being an odd-numbered release, will not become an LTS release, and its lifetime will run only about 8 months, until June 2017. During this time, Node 7 will be receiving minor version updates that incorporate additional new features.
If you want access to the latest features and are willing to accept a lesser degree of stability, then you might consider using Node 7, especially in development, staging, or test environments. Where stability is paramount, though, particularly in production environments—it is generally recommended to use Node 6 or Node 4, which are both current LTS versions. For more information about Node release cycles, please see this link: https://github.com/nodejs/lts.
New Relic and Node release versions
How do we determine whether the New Relic agent will support a specific version of Node?
First, we make sure our current tests pass. We have an extensive suite of tests that we run on all major versions of Node used by our customers. This currently includes Node v0.8, v0.10, v0.12, v4, v5, v6, and now v7. In version 1.34.0 of our agent, we added Node 7 to our test suite and updated any tests that were not compatible.
Second, we look for any changes in the public API of Node, specifically additions of new async methods. Our Node agent wraps every async function of the Node core in order to preserve states when that function is used within a traced transaction. In the case of Node 7, we found no changes to the async API that required changes in the agent.
Notable changes in Node 7
There are several notable updates in the initial release of Node v7 (7.0.0):
- Update of V8 to v5.4, which brings 98% coverage of ES6 and many performance improvements. During our testing, we have uncovered that the following deprecated Promise methods are no longer available in this version of V8: Promise.defer(), Promise.accept(), Promise.prototype.chain(). We strongly recommend that users switch to using ECMA-standard Promise methods.
- A new experimental URL parser based on the WHATWG URL standards.
- Many changes related to improving reliability and performance.
For more information, please see the release announcement here:
Since last year’s release of Node v4, the Node.js core team has put out two major releases per year, and New Relic has historically kept up with this schedule. The latest major version of Node v7 was released in October 2016, and the New Relic Node.js Agent can be used alongside it.