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

Node.js agent release notesRSS

February 21, 2018
Node.js agent v2.8.0

Note

This release is deprecated due to an issue where the agent may capture transaction attributes regardless of agent settings. If you are using this release, upgrade your agent to agent version 2.9.1 or higher. For more information, see Security Bulletin NR18-06.

New features

Improvements

  • Updated documentation for apdex_t setting and removed environment variable.

    This was never configurable on client side and the documentation was misleading.

  • Documented environment variables for slow_sql configurations.

    Thanks to Olivier Tassinari (@oliviertassinari) for the update!

  • Updated hapi/hapi-pre-17/package.json to run errors.tap.js in more versions.

  • Added internal cache to unwrapped core modules for agent use.

  • Improved logging around environment facts gathering.

Bug fixes

  • Enable certain agent attributes when high-security mode is enabled.

    During the switch from the old capture_params/ignored_params to the new attribute include/exclude rules, high-security mode was over-zealous in what attributes it disallowed. This has been trimmed back to be in line with other agents.

February 7, 2018
Node.js agent v2.7.1

Notes

  • Changed attributes.enabled to true by default.

    In the previous version we defaulted this to false to maintain parity with capture_params which defaulted to false. However, this is a invalid parity because attribute.enabled controls more attributes than capture_params.

Improvements

  • Removed unnecessary checks around Timer.unref() calls.

    unref has been supported since Node v0.9, meaning it will always be present in timers set by the agent (with 0.10 being the earliest supported version).

  • Added a split in the node versions for the mysql2 and cassandra versioned tests.

    As of mysql2 v1.3.1 and cassandra v3.4.0 the minimum supported version of Node is 4.

  • Replaced as many instances of {} as possible with Object.create(null).

  • Removed extraneous logger arg in addCustomAttribute call.

Bug fixes

  • The agent will no longer generate browser data for ignored transactions.

  • Expanded Hapi instrumentation to support route pre handlers.

    This is a Hapi route config option that was previously uninstrumented, causing transaction names to become invalid. This expanded instrumentation ensures that all additional handlers are wrapped and associated with the main route.

February 1, 2018
Node.js agent v2.7.0

새로운 기능

  • 포함 및 제외 규칙을 통한 에이전트 속성 필터링을 추가했습니다.

    에이전트 속성은 이제 세분화된 포함 및 제외 규칙을 사용하여 제어할 수 있습니다. 아래에 설명된 이 규칙은 capture_paramsignored_params을(를) 대체합니다. attributes.exclude이(가) 명시적으로 설정되지 않는 한, ignored_params에 나열된 모든 속성은 내부적으로 attributes.exclude (으)로 마이그레이션됩니다.

    루트 설정 및 각 대상(대상에 대해서는 나중에 자세히 설명)에 세 가지 새로운 설정 속성이 추가되었습니다. 이러한 새로운 설정은 다음과 같습니다:

    • attributes.enabled - 대상에 대한 속성 수집을 활성화합니다.
    • attributes.include - 포함할 속성 또는 와일드카드 규칙의 목록입니다.
    • attributes.exclude - 제외할 속성 또는 와일드카드 규칙의 목록입니다.

    포함 및 제외 규칙은 정확한 규칙(예: request.headers.contentLength)이거나 속성 키의 시작 부분만 일치하는 와일드카드 규칙(예: request.headers.*은(는) 모든 요청 헤더와 일치함)일 수 있습니다.

    이러한 규칙은 설정의 루트에서 전역으로 지정하거나 특정 대상에 대해 지정할 수 있습니다. 이러한 대상은 다음과 같습니다:

    • transaction_tracer - 트랜잭션 트레이스 속성을 제어합니다.
    • transaction_events - 트랜잭션 이벤트 속성을 제어합니다.
    • error_collector - 오류 이벤트 속성을 제어합니다.
    • browser_monitoring - 브라우저/RUM 트랜잭션 속성을 제어합니다.
  • addCustomParameter을(를) addCustomAttribute(으)로 이름을 변경했습니다.

    addCustomParameter 메서드는 이제 더 이상 사용되지 않으며 향후 에이전트 릴리스에서 제거됩니다. addCustomAttribute 메서드는 이를 바로 대체할 수 있습니다.

  • 에이전트 속성 필터링에 캐시를 추가했습니다.

    속성 규칙 적용의 오버헤드를 최소화하기 위해 에이전트는 특정 속성 키 및 대상의 필터링 결과를 캐시합니다. 캐시는 기본적으로 1,000개의 대상-키 쌍으로 제한되지만 attributes.filter_cache_limit(으)로 구성할 수 있습니다. 이 캐시는 캐시 히트에 대한 필터 규칙을 적용할 때 10배의 향상을 제공합니다.

  • 구성 옵션에 allow_all_headers을(를) 추가하고 http 계측을 업데이트했습니다.

    true(으)로 설정하면 에이전트가 모든 요청 헤더를 수집합니다. 이 수집은 에이전트 속성 포함 및 제외 규칙을 준수합니다. 기본 제외 규칙 세트는 newrelic.js에 제공됩니다. 이 규칙은 모든 쿠키 및 인증 헤더를 제외합니다.

  • 이제 세그먼트가 불투명으로 플래그 지정될 수 있으며, 이로 인해 내부 세그먼트가 트랜잭션 트레이스에서 생략됩니다.

개량

  • 모니터링 오버헤드를 낮게 유지하기 위해 에이전트 속성에 대한 제한을 추가했습니다.

    속성 키와 값은 각각 255바이트로 제한됩니다. 255바이트보다 큰 키는 삭제되며, 경고 메시지가 로그에 기록됩니다. 255바이트보다 큰 값은 멀티바이트 UTF-8 인코딩을 준수하여 255바이트로 잘립니다. 커스텀 속성은 트랜잭션당 64개로 제한됩니다. 64번째를 초과하는 속성은 알림 없이 무시됩니다.

  • 수집기 연결 실패 로그 메시지에 오류를 추가했습니다.

  • request_uri 속성의 이름을 request.uri(으)로 변경했습니다.

    이렇게 하면 속성 이름이 다른 모든 요청 속성과 일치하게 됩니다.

  • https-proxy-agent 의존성을 ^0.3.5에서 ^0.3.6(으)로 업데이트했습니다.

  • 계측된 모듈의 대부분의 마이너 버전이 예상대로 작동하도록 해당하는 경우 버전이 지정된 테스트를 업데이트했습니다.

  • Mongo 드라이버의 v1 라인에 대한 지연되는 테스트를 수정했습니다.

  • Hapi 404 트랜잭션이 올바르게 명명된 메트릭을 생성하는지 확인하는 테스트를 추가했습니다.

    Hapi 계측은 올바르게 작동했지만, 이 특정 사례에 대한 테스트가 없었습니다.

버그 수정

  • crypto.DEFAULT_ENCODING이(가) 변경될 때 에이전트가 더 이상 충돌하지 않습니다.

    이전에 에이전트는 hash.digest()의 결과가 Buffer의 인스턴스라고 가정했습니다. crypto.DEFAULT_ENCODING이(가) 변경되면 hash.digest()이(가) 문자열을 반환하고 에이전트가 충돌합니다. 이제 에이전트는 계속 진행하기 전에 값이 Buffer 인스턴스인지 확인합니다.

  • process.config.variables.node_prefix이(가) 누락된 경우의 오류를 수정했습니다.

    process.config.variables.node_prefix이(가) falsey인 경우(Electron을 사용할 때 발생할 수 있으며, 이 문제 https://support.newrelic.com/s/hubtopic/aAX8W0000008ZMO/new-relic-on-electron-nodejs로 이어짐) lib/environment.jsgetGlobalPackages 함수는 오류가 발생하지 않아야 할 때 오류를 발생시킵니다.

    수정해 주신 Jarred Filmer(@BrighTide) 님께 감사드립니다!

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.

Copyright © 2026 New Relic Inc.

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