• /
  • EnglishEspañol日本語한국어Português
  • Log inStart now

Node.js agent release notesRSS

September 1, 2016
Node.js agent v1.30.1

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 the global timers were the same function reference as the ones in the timers module. This would break in cases where either the global or timers 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.

August 29, 2016
Node.js agent v2.1.0-beta

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.

August 25, 2016
Node.js agent v1.30.0

New features

  • A number of improvements and fixes to transaction naming rules.

    Added attributes terminate_chain, replace_all, and precedence 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.

August 4, 2016
Node.js agent v2.0.0-beta

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 and DatastoreShim. These classes along with the new newrelic.instrument and newrelic.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.

July 14, 2016
Node.js agent v1.29.0

Improvements

  • Domain error handlers will now be scoped to the transaction the error occurred in.

    Previously, the 'error' event handlers would not be scoped to a transaction causing our API methods to not associate data correctly (e.g. using noticeError would not associate the error with the transaction and would instead be unscoped).

Bug fixes

  • Reworked the SQL parser to handle new lines in the query.

    Previously the agent would have difficulty classifying queries with new lines in them. Thanks to Libin Lu (@evollu) for the fix!

  • Postgres instrumentation is now compatible with inputs with text getter attributes.

    Thanks again to Libin Lu (@evollu) for the fix!

Node.js agent v1.28.3

Improvements

  • Improved agent startup speed by ~10% by simplifying environment checks.

    Removed prolific fs.exists and fs.stat checks, instead simply handling the error for mis-used files which greatly reduces disk access.

  • Added slightly more trace-level logging around the creation of segments.

  • Added examples for using the newrelic.createBackgroundTransaction method in a number of different use cases.

Bug fixes

  • Removed excessive segment creation from PG instrumentation.

    For queries with many results we would create a segment for each result. This would result in excessive object allocation and then cause harsh GC thrashing.

  • Fixed a bug in agent connect that could cause an identity crisis under specific use cases.

    When using the agent with multiple app names, transaction information could be misattributed to other services if they share the same first app name. This resolves that by using all of the host names to uniquely identify the agent.

July 7, 2016
Node.js agent v1.28.2

Improvements

  • Director instrumentation that will now name the transaction correctly, as well as create segments corresponding to the handlers registered with director.

  • Transaction naming refactor - this should clear up some inconsistent naming issues in our router instrumentations.

    Previously the instrumentation was tasked with the maintenance of the transaction state name, now this has been abstracted into its own class to be used by instrumentations.

  • Express instrumentation refactored to scope transaction storage to the incoming request object.

    Previously the express instrumentation used a stack to track which router was expecting middleware to finish and keep track of which transaction is being executed. The new implementation has a stronger guarantee on scoping work to the correct transaction.

Bug fixes

  • The agent now uses the correct units (was seconds, now milliseconds) for slow queries - this fixes and issue where query traces in the databases tab were slower than the reported maximum.

June 15, 2016
Node.js agent v1.28.1

Improvements

  • The following attributes are now sent to Insights along with transaction events: databaseDuration, databaseCallCount.
  • Updated Redis instrumentation to work with version 2.x of the redis module.
  • Improvements to error tracking on systems that have a lot of errors.
  • Minor improvements in tests and logging.

Bug fixes

  • Fixed a few issues with the Express instrumentation.

    Middleware functions mounted with a path variable now generate the correct middleware metrics. Routers mounted using route methods now generate the correct trace segments and times. Routers mounted on root path are now not included in trace when they contain no matching routes.

May 25, 2016
Node.js agent v1.28.0

New features

  • Express middleware metrics are now enabled by default.

Improvements

  • The following attributes are now sent to Insights along with transaction events: externalDuration, externalCallCount, and queueDuration.
  • Custom SSL certificates (from the agent configuration) are now used even when a proxy is not explicitly defined. This is useful in some environments that use an implicit proxy for all network traffic.

May 5, 2016
Node.js agent v1.27.2

Bug fixes

  • Fixed duplicated external transactions for https requests in Node > 0.10.

    Any external transaction that used the https module to make the request would appear twice in transaction traces due to https.request internally using http.request. This has now been resolved.

  • Updated eslint dev dependency to 2.9.0 (was 0.24.1).

  • Fixed an issue with transaction naming precedence.

    Custom naming of transactions will no longer be replaced by names generated by the instrumentation.

  • Fixed tests which broke under Node 6.0.

    Node 6.0.0 changed some messaging and internal functionality which our tests were asserting on. These tests have been updated to work with either the new version or the older ones.

  • Fixed installing GCC 5 in Travis for testing native modules in Node >= 3.0.

    Starting in Node 3.0, native modules were compiled with C++11 features enabled. The version of GCC preinstalled on Travis was too old to support that so we now manually install GCC 5 and set it as the system compiler.

  • Fixed metrics that were being scoped to themselves.

    Some metrics were scoped to themselves, causing a strange visual glitch in the New Relic UI. This self-scoping has been removed.

  • Added tests for transaction naming with parallel requests in Express.

Copyright © 2024 New Relic Inc.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.