AWS Lambda InsightsとX-Rayを併用した場合にどんなことができるか

Lambda InsightsとX-Rayを併用した場合にできることを記載します。

結論:Lambda Insightsでシステムレベルのメトリクスを確認し、気になる箇所があればX-Rayでパフォーマンスを視覚的に確認することができます。

Lambda InsightsとX-Rayはそれぞれざっくり以下のような特徴があります。

それでは、まずLambda InsightsとX-Rayを有効化していきます。

スポンサーリンク

Lambda InsightsとX-Rayの有効化

関数作成して、Lambda InsightsとX-Rayを有効化していきます。

既存関数の有効化を行いたい場合は、関数作成を読み飛ばしてください。

関数の作成

Lambda関数を作成します。(既存の関数のLambda InsightsとX-Rayの有効化をする場合は、この手順をスキップしてください)

  • 関数名:適切なもの
  • ランタイム:Node.js 18.x

ソースコードを以下のソースコードに置き換えデプロイします。

1秒スリープ後にレスポンスを返すソースコードになります。


const sleep = (m) => {
  return new Promise((resolve) => setTimeout(resolve, m));
};
export const handler = async(event) => {
    console.log("Start!");
    await sleep(1000);
    console.log("End!");
    const response = {
        statusCode: 200,
        body: JSON.stringify('Hello from Lambda!'),
    };
    return response;
};

ロールの設定

次のロールを割り当てます。

Lambda InsightsとX-Rayを開始するために必要な権限となります。


{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "logs:CreateLogGroup",
                "xray:PutTraceSegments",
                "xray:PutTelemetryRecords",
                "logs:CreateLogStream",
                "logs:PutLogEvents"
            ],
            "Resource": [
                "*"
            ]
        }
    ]
}

Lambda InsightsとX-Rayを有効化(開始)する

「設定タブ→モニタリングおよび運用ツール」から開始します。

以下の画面で拡張モニタリング」とAWS X-Ray」をONにします。

Lambda Insights X-Ray有効化

Lambda Insights X-Ray有効化

Lambda InsightsとX-Rayの併用した場合にどんなことができるか

まず以下の手順でLambda InsightsとX-Rayを有効化した関数のパフォーマンスのモニタリング画面へいきます。

  1. CloudWatch->Lambda Insightsとメニューをたどる
  2. シングルファンクションを選択する
  3. Lambda InsightsとX-Rayを有効化した関数を選択する

パフォーマンスのモニタリング画面の下の方に以下の表示があります。

Lambda Insights パフォーマンスのモニタリング画面

Lambda Insights パフォーマンスのモニタリング画面

トレース項目の表示リンクを押下するとX-Rayのトレース画面(以下の画面)に遷移し、パフォーマンスの可視化が可能です。

一部のリクエストにしか表示リンクがないのは、トレースがサンプリングで行われているためです。(X-Rayは全てをトレースしているわけではなく、サンプリングでトレースしている)

X-Rayトレース

X-Rayトレース

Lambda Insightsでシステムレベルのメトリクスを確認し、気になる箇所があればX-Rayでパフォーマンスを視覚的に確認することができます。

まとめ

Lambda InsightsとX-Rayを併用した場合にできることみてきましたー

便利そうですが、費用もかかるので調査等で必要な時だけ、Lambda InsightsとX-Rayを有効化し、不要な時は無効化しておいた方が良さそうです

X-Rayの料金

料金- AWS X-Ray | AWS
AWS X-Ray では、使用した分のみ料金が発生します。最低料金設定はありません。1 か月に保存されたトレースの数、および 1 か月にスキャンまたは取得されたトレースの数に対して課金されます。トレースが保持される期間は、記録後 30 日間のみです。

Lambda Insightsの料金

料金 - Amazon CloudWatch | AWS
Amazon CloudWatch は無料で始めることができ、また 、無料利用枠内でご利用いただけるアプリケーションも多数ご用意しています。このページでは Amazon CloudWatch に関する各種お見積もりや API 使用時のコスト予測についてご説明します。