メニュー
AWS Lambda
開発者ガイド

AWS Lambda のメトリクス

このトピックでは、AWS Lambda の名前空間、メトリクス、ディメンションについて説明します。AWS Lambda はお客様の代わりに自動的に関数をモニタリングし、Amazon CloudWatch を通じてメトリクスを報告します。これらのメトリックスには、呼び出し合計、エラー、所要時間、スロットリング、DLQ エラーおよびストリームベースの呼び出しのイテレータの有効期限が含まれます。

CloudWatch は、基本的にはメトリクスのレポジトリーです。メトリクスは CloudWatch の基本的概念で、時系列に並んだデータポイントのセットを表しています。ユーザー (または AWS サービス) がメトリクスのデータポイントを CloudWatch にパブリッシュし、ユーザーはこのデータポイントに関する統計を、時系列順に並べられたデータのセットとして取得できます。

メトリクスは名前、名前空間、1 つ以上のディメンションで一意に定義されます。各データポイントには、タイムスタンプと、オプションとして測定単位があります。統計を要求した場合、返されるデータストリームは、名前空間、メトリクス名、ディメンションによって識別されます。CloudWatch の詳細については、『Amazon CloudWatch ユーザーガイド』を参照してください。

AWS Lambda CloudWatch のメトリクス

AWS/Lambda 名前空間には、次のメトリクスが含まれます。

メトリクス 説明
Invocations

イベントまたは API 呼び出しに応じて呼び出される関数の回数を測定します。廃止された RequestCount メトリックが置き換えられます。これは、成功したまたは失敗した呼び出しが含まれますが、調整された試行は含まれません。これは、関数の課金されるリクエストと等しくなります。AWS Lambda は、ゼロ以外の値を持つメトリクスのみを CloudWatch 送信することに注意してください。

単位: Count

Errors

関数 (応答コード 4XX) エラーが原因で失敗した呼び出しの数を測定します。これは、廃止された ErrorCount メトリックが置き換えられます。失敗した呼び出しは、成功する再試行のトリガーとなる場合があります。ここでは次の点について説明します。

  • 処理された例外 (context.fail(error) など)

  • コードの終了を起こす処理されない例外

  • メモリ不足例外

  • タイムアウト

  • 権限エラー

これには、デフォルトの同時オペレーションの制限を超える呼び出しレートによる呼び出し失敗 (エラーコード 429) または内部サービスエラー (エラーコード 500) による呼び出し失敗は含まれません。

単位: Count

Dead Letter Error

Lambda が、失敗したイベントペイロードを設定済みのデッドレターキューに書き込むことができない場合に増分されます。これは、次のことが原因の可能性があります。

  • 権限エラー

  • ダウンストリームサービスからのスロットリング

  • リソースの設定が不適切

  • タイムアウト

単位: Count

Duration

呼び出しの結果として関数コードが実行を開始してから関数の実行が停止されるまでの実時間を測定します。廃止されるレイテンシーメトリックが置き換えられます。データポイントの最大値は関数のタイムアウト設定で設定可能です。課金期間は、100 ミリ秒を単位として切り上げられます。AWS Lambda は、ゼロ以外の値を持つメトリクスのみを CloudWatch 送信することに注意してください。

単位: ミリ秒

Throttles

お客様の同時オペレーションを超える呼び出しレートのために調整された Lambda 関数の呼び出し試行の回数を測定します (エラーコード 429)。失敗した呼び出しは、成功する再試行のトリガーとなる場合があります。

単位: Count

IteratorAge

ストリームベースの呼び出しのみに対して出力のみさます (Amazon DynamoDB ストリームまたは Amazon Kinesis ストリームによってトリガーされる関数)。処理されたレコードの各バッチの最後のレコードの経過日数を測定します。経過日数は、Lambda がバッチを受け取った時間と、バッチの最後のレコードがストリームに書き込まれた時間の差です。

単位: ミリ秒

エラー/呼び出し率

Lambda 関数呼び出し時のエラー率を計算する際は、呼び出しのリクエストと実際の呼び出しを区別することが重要です。エラー率は、課金される Lambda 関数の呼び出しのカスを超える可能性があります。Lambda は、Lambda 関数コードが実行された場合にのみ呼び出しのメトリクスをレポートします。呼び出しのリクエストによってスロットリングなどの初期化エラーが生じ、Lambda 関数コードが呼び出されない場合、Lambda はエラーをレポートしますが、呼び出しメトリクスを記録しません。

  • Lambda は、関数が実行されると Invocations=1 を送信します。Lambda 関数が実行されない場合は、何も送信されません。

  • Lambda は、各呼び出しリクエストについて、Errors のデータポイントを送信します。Errors=0 は、関数実行エラーが存在しないことを意味します。Errors=1 は、関数エラーが存在することを意味します。

  • Lambda は、各呼び出しリクエストについて、Throttles のデータポイントを送信します。Throttles=0 は、呼び出しのスロットルが存在しないことを意味します。Throttles=1 は、呼び出しのスロットルが存在することを意味します。

AWS Lambda CloudWatch ディメンション

次の表のディメンションを使用すると、Lambda 関数に対して返されるメトリクスを絞り込むことができます。

ディメンション 説明
FunctionName

Lambda 関数によってメトリクスデータをフィルタリングします。

Resource

Lambda 関数のリソースによってメトリクスデータをフィルタリングします。

Version

Lambda バージョンによってメトリクスデータをフィルタリングします。

Alias

Lambda エイリアスによってメトリクスデータをフィルタリングします。