Fixes
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!
Fixes
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-mysql2 support to the agent.
Query streaming in node-mysql now works while using the agent.
Previously, due to the way node-mysql was instrumented query streaming would be forced off when the agent was collecting data. This is no longer the case and query streaming will work and be recorded as expected.
Fixes
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, unfortunately this isn't the case if the HTTP server's
.close()
has been called.
New Features
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 shown "node" and maybe "request queueing" on the response time graph. We now show you an application breakdown like our other language agents! This means you'll be able to see how much time was in HTTP externals, your various datastores, or spent in node itself. Overlaid on this will be your response time as a blue line.
Next page that has been affected is our Transaction Overview page. Specifically when you click into a Transaction to see more detail. Previously we showed you a breakdown of the top time consumers in that transaction, both as a graph and as a table. Unfortunately that graph didn't show response time and the table would show percentages over 100%. Now, like the Application Overview, you will get a blue response time line and the breakdown table will have numbers that add up much more intuitively!
Finally, our Transaction Trace view has also been updated. The change is very similar to the changes mentioned above for the breakdown table in the Transaction Overview page. You should no longer see percentages over 100% here either.
Improvements
Transaction trace serialization is now 4x faster than before.
This speedup will primarily affect those with large, deeply nested transactions. Though small transactions have seen some improvement as well.
New features
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.
Bug fixes
Disabling SSL no longer requires the setting of a port.
Previously, the agent required changing
port
in the config to80
when disabling SSL. The agent will now default to port 80 if a port is not supplied and SSL is turned off.Logging functions have been improved.
The agent will now properly log error stack traces and can rate limit logging messages. To aid in debugging we have provided more logging about the public API.
New features
Advanced Analytics for APM Errors
With this release, the agent reports TransactionError events. These new events power the Advanced Analytics for APM Errors feature. The error events are also available through New Relic Insights.
Advanced Analytics for APM Errors lets you see all of your errors with granular detail, filter and group by any attribute to analyze them, and take action to resolve issues through collaboration.
Bug fixes
NEW_RELIC_LOG_ENABLED
environment variable is now treated as a boolean.Previously, this option was treated as a string, causing it to not work for some use cases. Thanks to @jakecraige for contributing this fix!
Notes
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 transactions to not be cross linked. This change makes the cross linking work correctly.
Notes
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 Node used by New Relic customers to ensure a quality Node APM experience. New Relic recommends upgrading to Node v4.x for best Node Agent performance.
Corrected a parsing issue in the slow sql query parsing step.
Previously, the agent would not be able to parse inputs to database libraries that specified sql as an option param. This was an issue with node-mysql, namely. The agent now correctly handles this case and registers the queries as expected.
Notes
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 Express instrumentation. Thanks @tregagnon.
When an unsupported version of Express is detected, we log a message that contains the Express version number. The version is a string and was being logged as a number, resulting in NaN in the log message.
Agent is now more safe when recording memory stats.
Previously, the agent would crash the process as it was gathering memory usage information (i.e. when process.memoryUsage threw an error). This defect is now guarded against with a try-catch.
Notes
Express and Connect instrumentation will no longer crash on Node 4
As 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 ' + fn.name
). This new behavior caused the agent to crash on start up due to the way connect and express are instrumented. The agent is now more defensive of future implementations of ES6.