• /
  • EnglishEspañolFrançais日本語한국어Português
  • ログイン今すぐ開始

Node.js agent release notesRSS

March 27, 2018
Node.js agent v3.3.0

New features

  • Added newrelic.startSegment(), which replaces newrelic.createTracer().

    This new API method allows you to create custom segments using either callbacks or promises.

Bug fixes

  • Fixed bug in pre route config option in Hapi instrumentation.

    Only applies to Hapi v16 and below. The pre handler wrapping was not properly returning in cases when the element was a string referring to a registered server method, and as a result these elements would be replaced with undefined.

March 14, 2018
Node.js agent v3.2.0

New features

Improvements

  • Refactored instrumentation hooks to work with modules.

    With this change it is now possible to link against external instrumentation modules.

March 13, 2018
Node.js agent v3.1.0

Improvements

  • Promise based web framework middleware instrumentation now supports callback based sequencing.

    Previously, a promise based middleware was assumed to continue to the next middleware once the promise it returned resolved. This assumption has been relaxed to allow for a callback to be supplied to the middleware to invoke the next middleware.

March 7, 2018
Node.js agent v3.0.0

Improvements

  • Removed the ssl configuration option.

    TLS is now always used in communication with New Relic Servers. The ssl configuration value and NEW_RELIC_USE_SSL environment value are no longer used. Setting either value to anything other than true will result in a warning.

  • Security bulletin NR18-05:

    Fixes issue introduced in 2.8.0 where the agent may have captured all transaction attributes, even with High-security mode enabled on the account. This may have included sensitive data attached to transactions.

  • All request parameters now prefixed with request.parameters..

    Previously request parameters such as route and query parameters were added as attributes without any name changes. For example /foo?bar=value would add the attribute bar to the transaction. Now this attribute would be named request.parameters.bar.

    Any Insights dashboards, alerts, or other NRQL queries using these attributes must be updated to use the new attribute names.

  • Adds support for EU Datacenter

March 5, 2018
Node.js agent v2.9.1

Bug fixes

  • Security bulletin NR18-06:

    Fixes issue introduced in 2.8.0 where the agent may have captured all transaction attributes, even with High-security mode enabled on the account. This may have included sensitive data attached to transactions.

  • Removed support for agent attributes include/exclude rules.

    These will be coming back in Node Agent v3.0.0. The fix for the above security bulletin required a backwards incompatible change to our attributes.

  • Fixed bug in Bluebird instrumentation.

    Some methods were not instrumented correctly. This would cause a problem if a function was passed to these methods.

    Special thanks to Andreas Lind (@papandreou) for helping us find this bug.

February 27, 2018
Node.js agent v2.9.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.

Improvements

  • Added the WebFrameworkShim#savePossibleTransactionName method.

    This method may be used to mark the current running middleware as a potential responder. savePossibleTransactionName should be used if a middleware can't be determined to be a terminal middleware while it executes, but may be responsible for responding after execution has finished.

  • Fixed dns.resolve results assertion.

  • Expanded async_hooks tests around maintain transaction context.

  • Added Koa to metric naming objects.

  • Added callback prop to middlewareWithPromiseRecorder return spec.

    While we aren't actually wrapping any callback, this is a workaround that gives us access to the active segment. This ensures that all segments inside Koa transaction traces are named correctly, particularly in cases when transaction context may be lost.

  • Updated after prop in middlewareWithPromiseRecorder return spec to set txInfo.errorHandled = true in cases when there is no error.

    Because Koa has no concept of errorware in the same sense as Express or Connect ((err, req, res, next)), the agent now assumes if a middleware resolves, any error that may have occurred can be marked as handled.

Fixes

  • Added check for parentSegment in async_hooks instrumentation, to help ensure that transaction context is maintained.

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

  • Added instrumentation support for MongoDB version 3.

    Version 3 of mongodb is now supported. Previously datastore host information (instance metrics) was incorrectly captured by the agent with mongodb v3. This has been fixed and all features should be functional now.

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

新機能

  • includeおよびexcludeルールによるエージェント属性のフィルタリングを追加しました。

    エージェント属性は、きめ細かい包含および除外ルールを使用して制御できるようになりました。以下で説明するこれらのルールは、capture_paramsおよびignored_paramsを置き換えます。attributes.excludeが明示的に設定されていない限り、ignored_paramsにリストされているすべての属性は内部的にattributes.excludeに移行されます。

    ルート設定と各宛先に、3つの新しい設定プロパティが追加されました(宛先については後述します)。これらの新しい設定は次のとおりです:

    • attributes.enabled - 宛先に対する属性の収集を有効にします。
    • attributes.include - 含める属性またはワイルドカードルールのリスト。
    • attributes.exclude - 除外する属性またはワイルドカードルールのリスト。

    インクルードルールとエクスクルードルールは、完全一致ルール(たとえばrequest.headers.contentLength)、または属性キーの先頭のみに一致するワイルドカードルール(たとえばrequest.headers.*は任意のリクエストヘッダーに一致します)にすることができます。

    これらのルールは、設定のルートでグローバルに、または特定の宛先に対して指定できます。これらの宛先は次のとおりです:

    • transaction_tracer - トランザクショントレース属性を制御します。
    • transaction_events - トランザクションイベント属性を制御します。
    • error_collector - エラーイベントの属性を制御します。
    • browser_monitoring - ブラウザ/RUMトランザクション属性を制御します。
  • addCustomParameteraddCustomAttributeに名前変更しました。

    addCustomParameterメソッドは非推奨となり、エージェントの将来のリリースで削除される予定です。addCustomAttributeメソッドは、そのドロップイン代替手段です。

  • エージェント属性のフィルタリングにキャッシュを追加しました。

    属性ルールの適用によるオーバーヘッドを最小限に抑えるため、エージェントは特定の属性キーと宛先のフィルタリング結果をキャッシュします。キャッシュはデフォルトで1,000個の宛先とキーのペアに制限されていますが、attributes.filter_cache_limitで設定できます。このキャッシュにより、キャッシュのヒットに対するフィルタールールの適用が10倍向上します。

  • 設定オプションにallow_all_headersを追加し、httpの計装を更新しました。

    trueに設定すると、エージェントはすべてのリクエストヘッダーを収集します。この収集は、エージェント属性の包含および除外ルールに従います。デフォルトの除外ルールセットはnewrelic.jsで提供されています。これらのルールは、すべてのCookieと認証ヘッダーを除外します。

  • セグメントをopaqueとしてフラグ付けできるようになり、内部セグメントがトランザクショントレースから除外されるようになりました。

改良点

  • 監視オーバーヘッドを抑えるため、エージェント属性に制限を追加しました。

    属性のキーと値は、それぞれ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)に感謝します!

Copyright © 2026 New Relic株式会社。

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