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

Node.js agent release notesRSS

January 3, 2018
Node.js agent v2.5.0

New features

  • Added hapi v17 instrumentation

    Hapi v17 added support for promise-based middleware which broke transaction tracking in the agent. This caused issues in naming, as the agent will name the transaction after the path to the middleware that responded to a request.

  • Added instrumentation for vision@5

    Due to the way vision is mounted to the hapi server when using hapi v17.x, the agent's instrumentation would not pick up on the middleware being mounted. This new instrumentation now correctly times rendering done in the vision middleware.

  • Added unwrapOnce method to shim object

    This new method can be used to unwrap a single layer of instrumentation. unwrapOnce is useful in cases where multiple instrumentations wrap the same method and unwrapping of the top level is required.

  • Added isErrorWare checks around nameState.appendPath/nameState.popPath calls to avoid doubling up paths in transaction names

    Previously, the agent would append its transaction name with the path fragment where an error handler middleware was mounted. The extraneous path fragment will now be omitted, and the transaction will be named properly after the middleware that threw the error.

  • Added support for pg 6 on Node 5 or higher

Improvements

  • Added parent property to webframework-shim segment description
  • Refactored existing hapi instrumentation for different server.ext() invocations
  • Refactored webframework-shim _recordMiddleware to construct different segment descriptions for callback- or promise-based middleware
  • Updated node-postgres@^6 versioned tests to avoid deprecation warning on direct module connect and end calls
  • Fixed running domain tests on Node 9.3.0.
  • Improved logging for CAT headers and transaction name-state management.
  • All json-safe-stringify calls now wrapped in try/catch
  • Removed lib/util/safe-json

Bug fixes

  • Fixed creating supportability metric when mysql2 goes uninstrumented.
  • Added a segmentStack.popto the middleware after in cases when an error is caught and there is no next handler
  • Fixed determining parents for middleware segments when transaction state is lost and reinstated
  • Added check to _recordMiddleware to avoid prepending a slash if original route is an array
  • Changed logic in http instrumentation to attach response.status to the transaction as a string
  • Updated startWebTransaction and startBackgroundTransaction to add nested transactions as segments to parent transactions

December 12, 2017
Node.js agent v2.4.2

Notes

  • Added Peter Svetlichny to the contributors list!

Improvements

  • Optimized NameState#getPath.
  • Optimized shim.record.
  • Optimized shim.recordMiddleware.
  • Upgraded eslint to v4.

Bug fixes

  • Fixed parsing SQL for queries containing newlines.

November 28, 2017
Node.js agent v2.4.1

Improvements

  • Added promise benchmarks to test non-async_hooks instrumentation.
  • Added logging for external calls made outside of a transaction.
  • Added logging for when unhandledRejection is noticed.
  • Improved performance of creating and merging metrics.
  • Improved performance of tracer.bindFunction.
  • Removed try-catch around internal property setting on older versions of Node.

Bug fixes

  • Moved require calls for vendor metadata to module-level.

November 15, 2017
Node.js agent v2.4.0

New features

  • Instrumentation will now only modify the arity of wrapped functions when needed.

    This can be controlled with the matchArity property on a WrapSpec. Disabling arity matching has a significant, positive impact on the performance of instrumentation.

Improvements

  • Added benchmarks for shimmer methods.

  • Pinned hapi tests at v16 due to incompatibility in hapi v17 with Node.js versions <8.

  • The agent's parsed queries will now only hold onto the stack that the query was made at, instead of an error object instance.

    Previously, the parsed query objects would hold onto an error instance, which would in turn hold onto references to all the functions in the stack when the error was created. This could cause memory issues if the functions were holding onto references to other pieces of data.

Bug fixes

  • Revert wrapping of https for Node ^8.9.1.

    The original cause for this problem was reverted by Node.

November 2, 2017
Node.js agent v2.3.2

Improvements

  • Added Node 9 to test suite.
  • Removed problematic tests for ancient version of Hapi (7.1).
  • Document purpose of throw in tracer to prevent developer confusion.
  • Added script for running agent micro benchmarks.
  • Added benchmarks for all the Shim and Tracer methods.

Bug fixes

  • Fixed a bug with Node >=8.9 that prevented https externals from being recorded.

October 24, 2017
Node.js agent v2.3.1

Improvements

  • Agent will attempt to reconnect to the collector forever after backing off to 5 minute delays.

Bug fixes

  • Refactored environment scan to improve startup time and fix cyclical symlink resolving.

October 16, 2017
Node.js agent v2.3.0

New features

Improvements

  • Added benchmark for performance of function wrapping.
  • Added Garbage Collection information to async_hooks benchmark.
  • Improved trace-level logging for capturing queries.
  • Added cases for omitting the agent with and without async hooks to the async hooks microbenchmark.

Bug fixes

  • Pinned version of Mocha to 3.x due to the incompatibility of Mocha v4 and Node v0.10 and v0.12.

September 26, 2017
Node.js agent v2.2.2

Bug fixes

  • Hapi handlers will now preserve the defaults associated with them.

    Previously when wrapping handlers, the agent would drop the associated defaults on the ground, these are now properly forwarded to the wrapper. Big thanks to Sean Parmelee (@seanparmelee) for finding the root cause of this bug and reporting it!

  • Fixed starting the agent with an invalid process version.

  • Pinned request version for testing old versions of Node.

  • Added tests for feature flags created at agent initialization.

September 11, 2017
Node.js agent v2.2.1

Improvements

  • Added metrics for enabled/disabled feature flags.

Bug fixes

  • Fixed transaction naming for Hapi plugins.

Thanks to Marc Höffl (@KeKs0r) for providing a reproduction!

August 23, 2017
Node.js agent v2.2.0

New features

  • Added support for ignoring ranges of status codes.

    The configuration 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 async/await

    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 file.

Improvements

  • Updated examples and documentation regarding custom transaction creation.

    All examples and documentation now point at the newrelic.start*Transaction methods.

  • Transaction state is now maintained in ChildProcess event listeners.

  • Reducing logging verbosity in the SQL query obfuscator.

Bug fixes

  • 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 server.handler() method were causing the Hapi server to return a 500 error. Now they are correctly handled and recorded as middleware functions.

Copyright © 2024 New Relic Inc.

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