• /
  • EnglishEspañolFrançais日本語한국어Português
  • 로그인지금 시작하기

Node.js agent release notesRSS

February 1, 2018
Node.js agent v2.7.0

Nueva característica

  • Se agregó el filtrado de atributos del agente mediante reglas de inclusión y exclusión.

    Los atributos del agente ahora se pueden controlar mediante reglas de inclusión y exclusión detalladas. Estas reglas, que se describen a continuación, reemplazan a capture_params y ignored_params. Cualquier atributo enumerado en ignored_params se migrará a attributes.exclude internamente, a menos que attributes.exclude se establezca de forma explícita.

    Hay tres nuevas propiedades de configuración agregadas a la configuración raíz y a cada destino (más sobre los destinos más adelante). Estas nuevas opciones de configuración son:

    • attributes.enabled - Habilita la recopilación de atributos para el destino.
    • attributes.include - Una lista de atributos o reglas de comodines para incluir.
    • attributes.exclude - Una lista de atributos o reglas de comodín para excluir.

    Las reglas de inclusión y exclusión pueden ser reglas exactas (por ejemplo, request.headers.contentLength) o reglas de comodín que coinciden solo con el principio de las claves de atributo (por ejemplo, request.headers.* coincidiría con cualquier encabezado de solicitud).

    Estas reglas se pueden especificar globalmente en la raíz de la configuración o para destinos específicos. Estos destinos son:

    • transaction_tracer - Controla los atributos de la traza de la transacción.
    • transaction_events - Controla los atributos del evento de transacción.
    • error_collector - Controla los atributos de evento de error.
    • browser_monitoring - Controla los atributos de transacción de navegador/RUM.
  • Se cambió el nombre de addCustomParameter a addCustomAttribute.

    El método addCustomParameter ahora está obsoleto y se eliminará en una versión futura del agente. El método addCustomAttribute es un reemplazo directo para este.

  • Se agregó caché al filtrado de atributos del agente.

    Para minimizar la sobrecarga de aplicar reglas de atributo, el agente almacena en caché los resultados de filtrar claves de atributo y destinos específicos. La caché está limitada a 1000 pares de destino-clave por defecto, pero se puede configurar con attributes.filter_cache_limit. Esta caché ofrece una mejora de 10x al aplicar reglas de filtro para aciertos de caché.

  • Se agregó allow_all_headers a las opciones de configuración y se actualizó la instrumentación de http.

    Cuando se establece en true, el agente recopilará todos los encabezados de solicitud. Esta recopilación respeta las reglas de inclusión y exclusión del atributo del agente. Se proporciona un conjunto predeterminado de reglas de exclusión en newrelic.js. Estas reglas excluyen todas las cookies y los encabezados de autenticación.

  • Ahora los segmentos pueden marcarse como opacos, lo que hace que los segmentos internos se omitan de la traza de la transacción.

Mejoras

  • Se agregaron límites para los atributos del agente para mantener baja la sobrecarga de monitoreo.

    Las claves y los valores de los atributos están limitados a 255 bytes cada uno. Las claves que superan los 255 bytes se descartan y se registra un mensaje de advertencia. Los valores que superan los 255 bytes se truncan a 255 bytes, respetando la codificación UTF-8 de varios bytes. Los atributos personalizados están limitados a 64 por transacción. Los atributos posteriores al 64.º se ignoran de forma silenciosa.

  • Se agregó el error al mensaje de log de falla de conexión del recolector.

  • Se cambió el nombre del atributo request_uri a request.uri.

    Esto alinea el nombre del atributo con todos los demás atributos de solicitud.

  • Se actualizó la dependencia https-proxy-agent de ^0.3.5 a ^0.3.6.

  • Se actualizaron las pruebas versionadas donde corresponde para garantizar que la mayoría de las versiones menores de los módulos instrumentados funcionen como se espera.

  • Se corrigió la prueba bloqueada para la línea v1 del controlador de Mongo.

  • Se agregaron pruebas que verifican que las transacciones 404 de Hapi resulten en métricas con nombres correctos.

    La instrumentación de Hapi estaba haciendo lo correcto, pero no teníamos pruebas para este caso específico.

Corrección de errores

January 18, 2018
Node.js agent v2.6.1

Improvements

  • Added regression test for promise instrumentation and stack overflows.

Bug fixes

  • Fixed naming bug in Restify instrumentation regarding parameters to next.

    The instrumentation previously considered any truthy value passed to next to be an error. It is possible to pass a string or boolean to next in Restify to control further routing of the request. This would cause the middleware's mounting path to be erroneously appended to the transaction name.

  • Fixed access to bluebird.coroutine.addYieldHandler.

    This was accidentally not copied by our instrumentation making access to the function fail. This has been resolved and tests expanded to ensure no other properties were missed.

January 10, 2018
Node.js agent v2.6.0

New features

  • Added transaction_tracer.hide_internals configuration.

    This configuration controls the enumerability of the internal properties of the agent. Making these properties non-enumerable can have an impact on the performance of the agent. Disabling this option may decrease agent overhead.

Improvements

  • Refactored promise instrumentation.

    This new instrumentation is far more performant than the previous and maintains a more sensible trace structure under a wider range of sequences.

  • Added concurrent environment scanning, limited to 2 reads at a time.

    This improves the performance of dependency scanning at agent startup, allowing the agent to connect to our services more quickly.

  • Refactored instrumentation tests to run against wide range of module versions.

    Instrumentation tests will be run against all supported major versions of every instrumented module. For releases, we will test against every supported minor version of the modules. This vastly improves our test coverage and should reduce the instances of regressions for specific versions of modules.

  • Added tests for all of bluebird's promise methods.

    These tests ensure that we 100% instrument bluebird. Some gaps in instrumentation were found and fixed. Anyone using bluebird should upgrade.

Bug fixes

  • Fixed a crashing error in the hapi instrumentation.

    When recording the execution of an extension listening to a server event (for example, 'onPreStart') the agent would crash due to the lack of a raw property on the first argument passed to the extension handler. The agent now checks the event before wrapping the extension handler and checks for the existence of the raw property before attempting to dereference off of it.

  • Fixed an incompatibility with the npm module mimic-response.

    The agent's HTTP instrumentation previously did not play well with the way mimic-response copied properties from an http.IncomingMessage. This caused modules that relied on that process, such as got, to hang.

  • Fixed naming rule testing tool to use same url scrubbing as the agent itself.

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.

Copyright © 2026 New Relic Inc.

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