Fixed a bug in Cross Application Tracing where the agent would sometimes attempt to set a header after headers had already been sent.
Replaced the logger with one that is handles file writes properly lowering overall resource usage.
This is a small change with a large impact.
fs.createWriteStreamreturns whether data was queued or not. If it is queued it is recommended to wait on a
drainevent but this isn't mandatory. Most loggers we've found ignore this event which leads to many writes getting buffered and a rapid increase in native heap size as well as lowering the process's ability to respond to requests.
Updated support for hapi 7.2 or higher.
Hapi refactored how the server is instantiated and caused the agent to not be able to get transaction names. This release accounts for the update and enables full instrumentation.
Added support for Custom Metrics
Custom metrics provides a way to send additional metrics up to New Relic APM, which can be viewed with Custom Dashboards. We have two APIs for this, recordMetric(name, value) and incrementMetric(name[, value]). Read more about Node.js custom metrics.
Fixed a bug in deeply nested transactions.
Previously we allowed transactions to be nested to any depth. We've found in some cases this causes stack depth problems and are now limiting to 900 segments per transaction. We will still collect metrics on all segments, but transaction traces will only show the first 900.
Fixed a bug where custom tracers would show 0 time if the transaction ended n them.
This may change the times you see for other types of tracers by a small amount. The change will reflect slightly more accurate timing.
- Fixed a bug that would cause the application to crash on outbound connections when using node 0.8.
- Fixed a bug that could sometimes cause the application to crash while parsing MySQL queries.
Added support for Label Categories
The agent now supports setting Labels for your application on a per instance level, using either an environment variable, or a config file setting. https://docs.newrelic.com/docs/apm/new-relic-apm/maintenance/categories-...
Improved transaction names for express 4
express 4 added the ability to mount apps and routers at specific urls. The node agent would previously use only the portion of the route that was the last router or app matched as the transaction name. Transaction names will now include the entire matched route.
Added detection for uninstrumented instances of modules that should be instrumented
The agent will now detect if an application has required a module before
require('newrelic').If this occurs, the agent will add a warning in the log file and display a warning banner in the UI.
Added more logging to custom instrumentation APIs at
The logging was improved for the benefit of people using the following APIs:
endTransaction. It will log when transactions are created and when transactions are ended. It will also log when it can't create a tracer due to there being no active transaction.
Fixed a bug in PostgreSQL instrumentation where the event emitter from
querycould not chain
.oncalls. This patch was contributed by sebastianhoitz.
Fixed a bug in
createBackgroundTransactionwhere if the agent was disabled it didn't take a
groupargument. This patch was contributed by nullvariable.
Fixed a bug in our URL parsing where in Node v0.11.14
url.parsereturns a differently shaped object than expected. This patch was contributed by atomantic
Note: Node v0.11.x is not officially supported, but Node v0.12 will be and this patch helps us get ready for that.
Added support for Cross Application Tracing
The agent now supports Cross Application Tracing, which allows the New Relic APM UI to display traces that span multiple applications.
Fixed a bug that would cause application to crash on request when using the kraken framework.
Loosened the restrictions on the
app_namesetting. Application names may now include any Unicode characters.