On this page:

このトピックでは、Node.js 関数のインストゥルメンテーション プロセスの要件と概要について説明します。

はじめる前に

AWS Lambda 向けサーバレス APM に登録し、環境変数を設定すると、インストゥルメンテーションを開始できます。セットアップが次の要件を満たしていることを確認します。

Node.js サーバレストレーサのダウンロード

関数の package.json ファイルで、Node.js サーバレストレーサ appdynamics-lambda-tracer で依存関係を宣言します。nameversiondependencies フィールドは必須です。 

{
  "name": "my-test-package",
  "version": "0.0.1", 
  "main": "handler.js",
  "dependencies": {
    "appdynamics-lambda-tracer": "latest" 
  }
}
JS


エージェントをインストールするには、package.json ファイルが存在するディレクトリに移動し、npm インストールコマンドを実行します。

npm install 
JS

コマンドは、トレーサの依存関係を node_modules/ フォルダにダウンロードします。

Requireステートメントの追加

アプリケーションにトレーサを追加するには、AWS Lambda handler 関数が含まれているアプリケーションコードのプライマリファイルに require ステートメントを追加します。

const tracer = require('appdynamics-lambda-tracer');
JS

他の require ステートメントの前にトレーサの require ステートメントを追加することを忘れないでください。 

Node.js トレーサを使用したサーバレス関数のインストゥルメント化

tracer.init メソッドを呼び出して、require ステートメント内の Node.js サーバレストレーサを初期化します。

インストゥルメンテーションを完了するには、コードの最後の行として tracer.mainModule(module) を呼び出します。 

次のコードスニペットは、トレーサを使用してサーバレス関数をインストゥルメント化する方法を示しています。

const tracer = require('appdynamics-lambda-tracer'); 
//Initialize the tracer
tracer.init();
 
// Your AWS Lambda handler function code here, for example:
exports.handler = async (event) => {
    // TODO implement
    const response = {
        statusCode: 200,
        body: JSON.stringify('Hello from Lambda!'),
    };
    return response;
};
//Complete the instrumentation
tracer.mainModule(module);
JS

デフォルトでは、Node.js サーバレストレーサは、HTTP または AWS Lambda 間のコールを介して渡された終了コールを自動的に検出します。関数がこれらのプロトコルを使用しない場合は、終了コールを作成する必要があります。「Node.js サーバレストレーサのカスタマイズ」を参照してください。

次のステップ

これで「サーバレス トレーサ インストゥルメンテーションの確認」の準備が完了しました。 

次に、「Node.js トレーサとエンドユーザモニタリングの統合」または「Node.js サーバレストレーサのカスタマイズ」を実行できます。