- Added metrics for enabled/disabled feature flags.
- Fixed transaction naming for Hapi plugins.
Thanks to Marc Höffl (@KeKs0r) for providing a reproduction!
Thanks to Marc Höffl (@KeKs0r) for providing a reproduction!
Added support for ignoring ranges of status codes.
error_collector.ignore_status_codes can now take ranges
of numbers. For example,
ignore_status_codes: ['400-404'] would ignore 400,
401, 402, 403, and 404.
Experimental instrumentation for
This is experimental instrumentation and has not yet been tested in a wide
array of production environments. The feature is currently off by default
behind a feature flag. To enable this experimental instrumentation, add
await_support: true to the
feature_flag setting in your agent config
Updated examples and documentation regarding custom transaction creation.
All examples and documentation now point at the
Transaction state is now maintained in
ChildProcess event listeners.
Reducing logging verbosity in the SQL query obfuscator.
Fixed a bug when a custom collector port was provided in the configuration that prevented redirected connections from working.
Fixed a bug in
Shim#record that could cause an exception when trying to
create a new segment as part of an ended/inactive transaction.
Fixed issue with custom Hapi handlers causing an error.
Previously custom Hapi handlers defined using the
were causing the Hapi server to return a 500 error. Now they are correctly
handled and recorded as middleware functions.
Fixed a bug in PG query obfuscation for
The agent used to mis-detect
$1 value placeholders as unmatched dollar-quoted
strings causing the whole query to be obfuscated to just
placeholders are now correctly detected and obfuscated.
Improved documentation for
Formatting for the
methods was fixed and documentation for the
TransactionHandle class which
getTransaction returns was added.
Fixed parsing the table name from SQL queries.
Quotes around the table name are now stripped after parsing the query and before constructing the metrics.
Fixed unhandled rejection error caused by
Fixed issue with transaction events not including correct duration values.
This issue was introduced in v2.0.0, and it has affected web transactions histogram and percentile charts.
Fixed issue with Redis instrumentation causing the agent to crash in some cases.
Previously, the Redis instrumentation would crash the agent when Redis commands were called without a callback and after the transaction has ended.
Fixed issue with the agent crashing on Node v4.0-4.4 and v5.0-5.9.
This issue was caused by incorrect shim for Buffer.from(), and it affected older minor versions of Node v4 and v5.
This release contains major changes to the agent instrumentation API, making it easier to create and distribute your own instrumentation for third party modules. Check out Upgrade the Node agent or the Migration Guide for more information on upgrading your application to this version.
BREAKING: Reversed naming and ignore rules.
Naming rules are now applied in the order they are defined.
BREAKING: De-duplicated HTTP request transactions.
Only one transaction is created per
request event emitted by an HTTP server.
Previously this was one transaction per listener per event emitted.
BREAKING: Stopped swallowing outbound request errors.
Errors emitted by outbound HTTP requests will no longer be swallowed by the agent.
BREAKING: Node v0.8 is no longer supported. Minimum version is now v0.10.
The v1 agent will continue to support Node 0.8 but will no longer receive updates.
BREAKING: npm v1 is no longer supported. Minimum version is now v2.0.0.
Added API for writing messaging framework instrumentation.
MessageShim class for writing instrumentation. This shim
can be accessed using the
newrelic.instrumentMessages() API method.
Applications driven by
amqplib consumers will now have transactions
automatically created for consumed messages. See
Troubleshoot message consumers
for more information on this instrumentation and its limitations.
Advanced instrumentation API is now generally available.
New methods for instrumenting common modules were introduced during the Agent v2 beta. These APIs are now available to everyone:
Shim: This method can be used to instrument
generic modules, such as connection pooling libraries, task schedulers, or
anything else not covered by a specialized class.
DatastoreShim: This method is good for
instrumenting datastore modules such as
WebFrameworkShim: This method is
used for instrumenting web frameworks like
Documentation and tutorials for the new API can be found on our GitHub documentation page: http://newrelic.github.io/node-newrelic/docs/
Rewrote built-in instrumentation using the new
The following instrumentations have been rewritten:
@newrelic/native-metrics module is now included as an optional dependency.
This module will be installed automatically with Agent v2. If it fails to install the agent will still function.
Node v8 is officially supported with the exception of
Support for the new
async/await keywords is coming in a future release. Until this support is added, New Relic does not support and highly discourages using the Node.js agent with applications that utilize
await, as it could result in transaction state loss and data being mixed between transactions.
Fixed a transaction state loss introduced in Node 7.10.0 when using
Added a new segment for
http.Agent#createConnection. Sockets created within a transaction also have
emit bound to the segment.
Fixed a typo about the name of the default configuration file. Thanks Jacob LeGrone (@jlegrone)!
Improved API for writing web framework instrumentation.
Introduced a new
WebFrameworkShim class for writing instrumentation. This
shim can be accessed using the
newrelic.instrumentWebframework API method.
Incorporated fixes and features from 1.38.0, 1.38.1, and 1.38.2.
Only one transaction is created for each request emitted by a server.
Previously we created a transaction for each listener on the
Fixed the beta sign up link in the README.md.
Rewrote instrumentation for Connect, Director, Express, Hapi, and Restify.
These instrumentations were rewritten using the new
WebFrameworkShim. As a
consequence of this rewrite, all our instrumentations now have feature parity,
meaning every instrumentation will create Middleware metrics for your server.
Tutorials on using the new instrumentation shim can be found on our API docs: http://newrelic.github.io/node-newrelic/docs/.
express_segments feature flag.
This configuration previously controlled the creation of middleware metrics in our Express instrumentation. With the move to the WebFrameworkShim this was dropped.
Error messages are redacted in High Security Mode now.
New configurations were added for disabling some New Relic API methods. These default to enabled and are all disabled in High Security Mode.
Updated the default value for
This value was previously
off by default. This change brings the New Relic
Node Agent defaults in line with other New Relic Agents.
Our when instrumentation better detects when a module is actually
Thanks to Pasi Eronen (@pasieronen) for the contribution!
Quiet a warning in our native promise instrumentation on Node 0.10.
Fixed a bug in the generic pool instrumentation affecting version 3.