Important
The end-of-life date for this agent version is July 29, 2019. To update to the latest agent version, see Update the agent. For more information, see End-of-life policy.
Notes
- 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! It's super cool! We know a lot of you have been waiting for this, and it's here! It's manually set up with an API call! Check the README for details!
- By default, all communication between New Relic for Node and New Relic's servers is now protected with crisp, clean TLS encryption. To minimize the CPU overhead of running connections over SSL (and it can be configured, see the README and the online documentation for details on how to return to plain HTTP), New Relic for Node is now using a keep-alive connection that will properly pipeline connections, for both HTTP and HTTPS.
- Improved the timings for a large class of MongoDB / Mongoose use cases. If you've encountered the issue where MongoDB trace segments last for an absurdly long duration, this should help.
Important
The end-of-life date for this agent version is July 29, 2019. To update to the latest agent version, see Update the agent. For more information, see End-of-life policy.
Notes
Includes a nearly total rewrite of the connection layer that the module uses to communicate with New Relic's servers:
- More useful logs! All of the logging has been reviewed closely to maximize its value and usefulness at pretty much every level. In practice, this means that the messages logged at 'info' and higher should only be for things that are relevant to you as a customer, and at 'debug' and 'trace' should be much more useful for us when we help you isolate issues with New Relic in your applications.
- See data faster! As part of the connection handshake with New Relic, the module will now send any performance metrics gathered during the startup cycle immediately, instead of waiting a minute for the first full harvest cycle.
- Get data to New Relic more reliably! When the module has issues connecting to New Relic, it's more consistent and resilient about holding your performance data for later delivery.
- Use less bandwidth! Performance data delivery to New Relic is now sequential instead of simultaneous. This means that the bandwidth used by New Relic will be less bursty, especially on hosts running many instrumented applications (or cluster workers).
- Better implementation! There were a number of architectural problems with the old version of the connection layer, which (among other things) made it difficult to test. The new version is simpler, has a much cleaner API, and has many, many more tests.
Important
The end-of-life date for this agent version is July 29, 2019. To update to the latest agent version, see Update the agent. For more information, see End-of-life policy.
Notes
- 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 configuration, the server was still able to set the value of apdex_t for your app. This was an oversight, and has been corrected.
- Before, if you had request renaming rules, if the end result was the same as the match pattern (mapping
/path
to/path
), they would be silently ignored. This has been fixed. - MySQL instrumentation handles callback more consistently, so the transaction tracer doesn't get confused and stop tracking transactions with MySQL calls in them.
Important
The end-of-life date for this agent version is July 29, 2019. To update to the latest agent version, see Update the agent. For more information, see End-of-life policy.
Notes
- 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 long it takes to render views.
- Before, transaction naming and ignoring rules didn't work with Express and Restify routes. This has been addressed and the documentation has been clarified. Much gratitude to everyone who helped us figure out how to get this right, and for dealing with the previous, unclear documentation.
- Parameters in the ignored params list weren't being ignored in all cases.
- A very annoyingly chatty log message had its priority level dropped several levels.
Important
The end-of-life date for this agent version is July 29, 2019. To update to the latest agent version, see Update the agent. For more information, see End-of-life policy.
Notes:
- 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 now crash consistently. The error tracer is now also considerably simpler.
- Added a security policy. See the new section in README.md or read SECURITY.md.
- Future-proofed the MongoDB instrumentation and prevented the module from breaking GridFS.
- Made a small tweak that should reduce the amount of blocking file I/O done by the module.
- The module's instrumentation and harvest cycle will now not hold the process open in Node 0.9+. This should make it easier for processes to shut themselves down cleanly with New Relic running.
- The environment information gatherer will no longer crash if it tries to read a directory where it's expecting a file.
- Errors thrown during the execution of Express routes or Connect middlewares that were attached to requests that ended in HTTP status codes configured to be ignored by default will now be ignored correctly.
- Made the module play nicer with Node's REPL. It no longer assumes that an application necessarily has a main module.
- A few tweaks were made to support the CoolBeans dependency injection framework.
- Several log messages were demoted to a less chatty level.
Important
The end-of-life date for this agent version is July 29, 2019. To update to the latest agent version, see Update the agent. For more information, see End-of-life policy.
Notes:
- 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 final HTTP status code ends up being). This should make the traced errors tab considerably more useful.
- Improved instrumentation for legacy
http.createClient
andhttp.Client
client methods. A few modules still use these legacy API calls, and the old instrumentation was just plain wrong. - Changed how the error tracer deals with certain kinds of errors to deal with differences between Node versions 0.8 and 0.10. It should now convert throws into fatal errors less frequently.
- Removed useless fs.readDir instrumentation, which generated a lot of metrics but which New Relic was unable to display in any useful form. Maybe it will come back someday in a more useful incarnation.
Important
The end-of-life date for this agent version is July 29, 2019. To update to the latest agent version, see Update the agent. For more information, see End-of-life policy.
Notes:
- 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. - Ignoring slow (or polling) requests was only being applied to slow transaction traces. It now applies to metrics and transactions that end in errors.
- MongoDB, Redis and Memcached now honor the
capture_params
andignored_params
settings. - New Relic for Node.js, like New Relic's other agents, has a sophisticated system for repeatedly trying to connect to New Relic's servers when the first attempt results in failure. This had been broken since (roughly) January. It works again now.
- The built-in debugging for the transaction tracer was out of date with respect to the production tracer. This is fixed, and you're welcome to satisfy your curiosity by enabling it, but it's really not going to be useful to you unless you feel like taking the time to understand what the tracer is doing at a low level. Do not ever enable it in production, as it degrades the tracer's performance and generates a huge pile of objects per transaction.
Important
The end-of-life date for this agent version is July 29, 2019. To update to the latest agent version, see Update the agent. For more information, see End-of-life policy.
Notes:
- 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 favicon.ico renderer out of the ignore list!
- The module will no longer pollute MongoDB queries with New Relic-only parameters. Thanks to Alon Salant for identifying this issue, and all apologies to him for the trouble it caused him.
- The instrumentation for MongoDB, memcached, Redis, and Express will now honor the setting of the
capture_params
configuration flag. Before the module always captured query parameters. - Fixed a problem that would cause New Relic for Node to fail on versions of Node between 0.8.0 and 0.8.3.
- Upgraded to the newest version of
continuation-local-storage
, which has many fixes for dealing with monkeypatched EventEmitters.
Important
The end-of-life date for this agent version is July 29, 2019. To update to the latest agent version, see Update the agent. For more information, see End-of-life policy.
Notes:
- 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 upgrade to the current version.