Amazon での Lambda Insights の使用 CloudWatch - AWS Lambda

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Amazon での Lambda Insights の使用 CloudWatch

Amazon CloudWatch Lambda Insights は、サーバーレスアプリケーションの Lambda 関数ランタイムパフォーマンスメトリクスとログを収集および集計します。このページでは、Lambda Insights を有効にして Lambda 関数に関する問題の診断に使用する方法について説明します。

Lambda Insights によるサーバーレスアプリケーションのモニタリング方法

CloudWatch Lambda Insights は、 で実行されているサーバーレスアプリケーション用のモニタリングおよびトラブルシューティングソリューションですAWS Lambda。このソリューションでは、CPU 時間、メモリ、ディスク、ネットワーク使用率などのシステムレベルのメトリクスが収集、集約、要約されます。また、コールドスタートや Lambda ワーカーシャットダウンなどの診断情報が収集、集約、要約されるため、Lambda 関数に関する問題を特定し、迅速に解決できます。

Lambda Insights は、 CloudWatch Lambda レイヤー として提供される新しい Lambda Insights 拡張機能 を使用します。 Lambda レイヤーでの作業サポートされているランタイムの Lambda 関数でこの拡張機能を有効にすると、システムレベルのメトリクスが収集され、その Lambda 関数の呼び出しごとに 1 つのパフォーマンスログイベントが出力されます。 は埋め込みメトリクスフォーマット CloudWatch を使用して、ログイベントからメトリクスを抽出します。詳細については、「AWS Lambda 拡張機能の使用」を参照してください。

Lambda Insights レイヤーは、/aws/lambda-insights/ ロググループ用に CreateLogStream および PutLogEvents を拡張します。

料金

Lambda 関数で Lambda Insights を有効にすると、Lambda Insights は関数ごとに 8 つのメトリクスをレポートし、関数の呼び出しごとに約 1KB のログデータが に送信されます CloudWatch。料金は、Lambda Insights によって関数に関してレポートされたメトリックスとログに対してのみ発生します。最低料金やサービス使用義務はありません。関数が呼び出されない場合、Lambda Insights に対する支払いはありません。料金の例については、「Amazon CloudWatch 料金表」を参照してください。

ランタイムのサポート

Lambda Insights は、Lambda 拡張機能をサポートする任意のランタイムで使用できます。

Lambda コンソールで Lambda Insights を有効にする

新規および既存の Lambda 関数で、Lambda Insights 拡張モニタリングを有効にできます。サポートされているランタイムの Lambda コンソールの関数で Lambda Insights を有効にすると、Lambda は Lambda Insights 拡張機能をレイヤーとして関数に追加し、関数の実行ロールに必要な CloudWatchLambdaInsightsExecutionRolePolicy ポリシーを検証するか、アタッチしようとします。

Lambda コンソールで Lambda Insights を有効にするには
  1. Lambda コンソールの [関数ページ] を開きます。

  2. 関数を選択します。

  3. [設定] タブを選択します。

  4. 左側のメニューで、モニタリングツール とオペレーションツール を選択します。

  5. 追加モニタリングツールペインで、編集を選択します

  6. [CloudWatch Lambda Insights]で、[Enhanced monitoring (拡張モニタリング)] をオンにします。

  7. [Save] を選択します。

Lambda Insights をプログラムで有効にする

Lambda Insights は、AWS Command Line Interface (AWS CLI)、AWS Serverless Application Model (SAM) CLI、AWS CloudFormation、または、AWS Cloud Development Kit (AWS CDK)を使用して有効にすることもできます。サポートされているランタイムの関数で Lambda Insights をプログラムで有効にすると、 はCloudWatchLambdaInsightsExecutionRolePolicyポリシーを関数の実行ロール にア CloudWatch タッチします。

詳細については、「Amazon ユーザーガイド」の「Lambda Insights の開始方法」を参照してください。 CloudWatch

Lambda Insights ダッシュボードの使用

Lambda Insights ダッシュボードには、コンソールに CloudWatch multi-function overview と single-function view の 2 つのビューがあります。multi-function overview では、現在の AWS アカウントとリージョンの Lambda 関数のランタイムメトリクスが集計されます。single-function view では、単一の Lambda 関数で使用可能なランタイムメトリクスが表示されます。

CloudWatch コンソールの Lambda Insights ダッシュボードの multi-function overview を使用して、使用率の高い Lambda 関数と使用率の低い Lambda 関数を識別できます。 CloudWatch コンソールの Lambda Insights ダッシュボードの single-function view を使用して、個々のリクエストのトラブルシューティングを行うことができます。

すべての関数のランタイムメトリクスを表示するには
  1. CloudWatch コンソールの Multi-function ページを開きます。

  2. 定義済みの時間範囲から選択するか、カスタムの時間範囲を選択します。

  3. (オプション) ダッシュボードに追加 を選択して、ウィジェットを CloudWatch ダッシュボードに追加します。

    
            Lambda Insights ダッシュボードの multi-function overview。
1 つの関数のランタイムメトリクスを表示するには
  1. CloudWatch コンソールのシングル関数ページを開きます。

  2. 定義済みの時間範囲から選択するか、カスタムの時間範囲を選択します。

  3. (オプション) ダッシュボードに追加 を選択して、ウィジェットを CloudWatch ダッシュボードに追加します。

    
            Lambda Insights ダッシュボードの single-function view。

詳細については、 CloudWatch 「ダッシュボードでのウィジェットの作成と操作」を参照してください。

関数の異常を検出するワークフローの例

Lambda Insights ダッシュボードの multi-function overview を使用して、関数でのコンピュートメモリの異常を特定および検出できます。例えば、multi-function overview で、関数が大量のメモリを使用していることが示されている場合、[Memory Usage] ペインで詳細なメモリ使用率メトリクスを表示できます。その後、[Metrics] ダッシュボードに移動して、異常検出を有効にするか、アラームを作成できます。

関数の異常検出を有効にするには
  1. CloudWatch コンソールの Multi-function ページを開きます。

  2. [Function summary] で、関数の名前を選択します。

    single-function view が開き、関数のランタイムメトリクスが表示されます。

    
            Lambda Insights ダッシュボードの関数概要ペイン。
  3. [Memory Usage] ペインで、3 つの縦のドットを選択し、[View in metrics] を選択して [Metrics] ダッシュボードを開きます。

    
            [Memory Usage (メモリ使用状況)] ペインのメニュー。
  4. [Graphed Metrics] タブの [Actions] 列で、最初のアイコンを選択して関数の異常検出を有効にします。

    
            [Memory Usage (メモリ使用状況)] ペインの [Graphed Metrics (グラフ化されたメトリクス)] タブ

詳細については、 CloudWatch 「異常検出の使用」を参照してください。

クエリを使用して関数のトラブルシューティングを行うワークフローの例

Lambda Insights ダッシュボードの single-function view を使用して、関数の所要時間が急増する根本原因を特定できます。例えば、multi-function overview で関数の所要時間が大きく増加している場合は、[Duration] ペインで一時停止するか、各関数を選択して、どの関数が増加の原因になっているかを判断できます。次に、single-function view に移動し、[Application logs] を確認して、根本原因を特定できます。

関数に対してクエリを実行するには
  1. CloudWatch コンソールの Multi-function ページを開きます。

  2. [Duration] ペインで、所要時間メトリクスをフィルタリングする関数を選択します。

    
            [Duration (所要時間)] ペインで選択された関数。
  3. [Single-function (単独の関数)] ページを開きます。

  4. [Filter metrics by function name] ドロップダウンリストを選択し、関数を選択します。

  5. [Most recent 1000 application logs] を表示するには、[Application logs] タブを選択します。

  6. [Timestamp] と [Message] を確認し、トラブルシューティングを行う呼び出しリクエストを特定します。

    
            最新の 1000 のアプリケーションログ
  7. 最新の 1000 の呼び出し] を表示するには、[Invocations (呼び出し)] タブを選択します。

  8. トラブルシューティングを行う呼び出しリクエストの [Timestamp] または [Message] を選択します。

    
            最近の呼び出しリクエストを選択します。
  9. [View logs] ドロップダウンリストを選択し、[View performance logs] を選択します。

    関数の自動生成されたクエリが [Logs Insights] ダッシュボードで開きます。

  10. [Run query] を選択して、呼び出しリクエストの [Logs] メッセージを生成します。

    
            [Logs Insights] (ログインサイト) ダッシュボードで選択した関数をクエリします。

次のステップ