このトピックでは、Node.js 関数のインストゥルメンテーション プロセスの要件と概要について説明します。はじめる前に
AWS Lambda 向けサーバレス APM に登録し、環境変数を設定すると、インストゥルメンテーションを開始できます。セットアップが次の要件を満たしていることを確認します。
Node.js サーバレストレーサのダウンロード
関数の package.json
ファイルで、Node.js サーバレストレーサ appdynamics-lambda-tracer
で依存関係を宣言します。name
、version
、dependencies
フィールドは必須です。
{
"name": "my-test-package",
"version": "0.0.1",
"main": "handler.js",
"dependencies": {
"appdynamics-lambda-tracer": "latest"
}
}
JS
エージェントをインストールするには、package.json
ファイルが存在するディレクトリに移動し、npm
インストールコマンドを実行します。
コマンドは、トレーサの依存関係を 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 サーバレストレーサのカスタマイズ」を実行できます。