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

この機械翻訳は、参考として提供されています。

英語版と翻訳版に矛盾がある場合は、英語版が優先されます。詳細については、このページを参照してください。

問題を作成する

ESMアプリケーションでのNode.jsエージェントの使用

|View as Markdown (English)

Node.jsアプリケーションのコード管理にESMを使用している場合、Node.jsエージェントを使用してそれらのアプリケーションをモニターできるようになりました。

注意

ESMアプリケーションの計装に対するNode.js APMエージェントのサポートは実験的です。エージェントは、計装を登録するために実験的なNode.js機能に依存しています。ESMローダーのNode.js APIが安定するまで、破壊的変更が発生する可能性があります。

概要

v12.0.0 より前は、Node.js は、CommonJS モジュールを使用したコードの管理のみを公式にサポートしていました。CommonJS モジュールは、次の例のように、 module.exports ステートメントとrequire()ステートメントを使用してコードを管理します。

'use strict'
const bar = require('./bar')
function echoBar() {
console.log('this is bar:', bar)
}
module.exports = {
echoBar
}

Node.js v12.0.0 以降、ECMAScript モジュール (ES モジュール/「ESM」) のサポートが追加されました。

require()とmodule.exportsの代わりに、ESMは次のようなimportとexportのステートメントを使用します:

'use strict'
import bar from './bar.js'
export function echoBar() {
console.log('this is bar:', bar)
}

ESMはコード管理のための公式なECMAScript標準であり、ブラウザやその他のJSランタイムがパッケージを管理するための標準的な方法です。現在および将来にわたって進化するNode.jsエコシステムをサポートするため、エージェントはバージョン9.1.0以降、ESMを使用して記述された、インストゥルメントされたアプリケーションをサポートします。Node.js APMエージェントは、引き続きCommonJSアプリケーションもサポートします。

重要

ESMアプリケーションでNode.js APMエージェントを使用する場合、サポートされるNode.jsの最小バージョンはv16.12.0です。

エージェントのセットアップ

エージェントがESMアプリケーションを正常に計装するためには、インストレーションのドキュメントで説明されているように、まずNode.jsエージェントをインストールする必要があります。エージェントのインストールが完了したら、以下のセクションの設定に進んでください。

構成

アプリケーションで構成ファイルを使用してエージェントを構成する場合、構成ファイルの拡張子を.js ではなく.cjsに更新する必要があります。

エージェントは CommonJS モジュールとして作成されます。 require()を使用して、起動時に構成ファイルを読み込みます。ファイル拡張子を変更することで、エージェントの構成ファイルを CommonJS モジュールとして明示的にラベル付けし、エージェントがそれを正常にロードできるようにします。

ファイル拡張子を更新しないと、エージェントの起動時に次のエラーが表示される場合があります。

New Relic for Node.js is disabled due to an error:
Error [ERR_REQUIRE_ESM]: require() of ESM /path/to/your/application/newrelic.js from /path/to/your/application/node_modules/newrelic/lib/config/index.js not supported.

ESMローダーの追加

エージェントがESMエコシステム内で計装を適切に適用するためには、アプリケーションの呼び出し時に、エージェントとともにエージェントのESMローダーを含める必要があります。Node.jsの--importCLI引数を使用することで、アプリケーションにローダーを追加できます。

bash
$
node --import newrelic/esm-loader.mjs -r newrelic your-program.js

カスタムインストゥルメンテーション

Node.js APMエージェントは、ESMアプリケーションへのカスタムインストゥルメンテーションの追加をサポートしています。APIにある計装登録手段のほとんどを使用して、ESMアプリケーションで計装を作成できます。ESMインポートの性質上、エージェントはnewrelic.instrumentLoadedModuleをサポートしていません。ESMバインディングは代入できないため、モジュールのロード後にエージェントがモジュールのエクスポートされたメンバーを計装に置き換えることはできません。

ESMアプリケーションでカスタムインストゥルメンテーションAPIを使用する方法のデモンストレーションを確認するには、GitHubの例を確認してください。

もっと詳しく知る

Copyright © 2026 New Relic株式会社。

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