New features
- The agent now collects database instance information for PostgreSQL and Redis operations. This information (database server and database name) is displayed in transaction traces and slow query traces.
Bug fixes
Fixed issue with aborted requests causing the agent to crash in some cases.
Previously the agent would crash when the client request aborted before Express server sent a response and encountered an error.
Improvements
- Upgraded integration tests to work with the latest version of node-tap.
Improvements
Fixed format of external calls metric.
External service URLs will now be formatted the same as they are in the originating application.
Improved instrumentation of native promises.
Native promises now use the same instrumentation as Bluebird, making instrumentation easier to maintain and more consistent across libraries.
Bug fixes
Fixed issue with reloading normalization rules from the server.
Upon reset, the agent will clear the existing naming rules, removing any vestigial rules that may have changed or been disabled.
Fixed issue with key transactions Apdex metric.
Key transactions now effect the global Apdex metric according to their own ApdexT instead of the default ApdexT value.
Fixed issue with closing transactions when the request is aborted.
Previously, aborted requests would result in the transaction remaining open indefinitely. Now the transaction will be correctly finished and its resources freed.
Improvements
- Incorporated fixes from v1.30.1, v1.30.2, and v1.30.3.
Notes
This release is the same as v1.30.2 except it has been published using npm 2 to make sure all nested bundled dependencies are included.
Notes
Important
This release has been unpublished from npmjs.org. Please use version 1.30.3 or higher.
New features
Added instrumentation of the param() function in Express.
The agent will now create metrics and transaction segments when the Express param() function is called as a part of a route. This also fixes an issue with transaction naming when the HTTP response is ended within a param() method.
Bug fixes
Fixed an issue with naming Express transactions that result in 404 errors.
Previously transactions were not always correctly normalized for URLs that caused 404 errors. The transactions will now always be reported with the same normalized name (e.g. "get /").
Fixed instrumentation of Express v4.0 - v4.5.
Previously transactions were not correctly named on older versions of Express 4.
Improvements
- Minor upates to logging.
Bug fixes
The
shutdown
method is now on the stub API.Previously when the agent was disabled the stub API passed back on require did not have the
shutdown
method. Thanks goes to Vlad Fedosov (@StyleT) for this contribution!Global timers will now be wrapped correctly regardless of being wrapped by something else.
The logic to check whether to wrap the
global
timers was looking to see if theglobal
timers were the same function reference as the ones in thetimers
module. This would break in cases where either theglobal
ortimers
functions had been wrapped.Director instrumentation now correctly handles the case of null route handlers being passed in.
Previously the agent's director instrumentation would crash in cases of null route handlers in director.
Notes
You must read and agree to the Beta Agreement before using this beta version of the agent.
New features
Added
rowCallback
property to datastore segment descriptors.With this parameter the shim will record the given function/parameter as a per-row callback which may be called multiple times. These calls will be counted up for traces.
Improvements
Incorporated fixes from v1.30.0
Rewrote PostgreSQL instrumentation using new
DatastoreShim
class.Reversed
reverse_naming_rules
default.Naming rules now default to evaluating in forward order.
New features
A number of improvements and fixes to transaction naming rules.
Added attributes
terminate_chain
,replace_all
, andprecedence
to allow more control over how naming rules are executed. Please see the updated documentation in our README file.The order in which naming rules are executed can now be reversed with a feature flag
reverse_naming_rules
.When applying naming rules, the regular expression matching is now case insensitive.
We have added a tool for testing naming rules. When the agent is installed, the tool can be run in terminal by executing
node node_modules/.bin/newrelic-naming-rules
.We have also improved our trace logging around transaction naming.
Improvements
- Added trace logging to track number of transactions and segments in progress, and to better track segments created with the Express instrumentation.
- Fixed mysql2 tests that were not being run correctly.
Bug fixes
Fixed issue with reporting errors from domains.
When an error is handled by using the
error
event of the domain, it is no longer reported as an uncaught exception.
Notes
You must read and agree to the Beta Agreement before using this beta version of the agent.
Dropped support for Node.js 0.6 and 0.8 as well as node-mysql
package versions < 1.0.0.
New features
Improved API for writing instrumentation.
Introduced new classes for writing instrumentation,
Shim
andDatastoreShim
. These classes along with the newnewrelic.instrument
andnewrelic.instrumentDatastore
methods make writing 3rd party instrumentation much easier.Rewrote instrumentation for Cassandra, Redis, ioredis, MySQL, and MongoDB.
These instrumentations were rewritten using the new
DatastoreShim
interface. Their functionality is largely unchanged but the new code should be easier to maintain and extend.Added public API documentation.
Documentation for the New Relic agent API has been generated using JSDoc and is now hosted on GitHub at https://newrelic.github.io/node-newrelic. There you can find documentation on the new classes as well as the pre-existing API methods.