投稿日: Feb 9, 2023

AWS Lambda が非同期イベント処理のパフォーマンスをモニタリングするための新しいメトリクスをリリースしました。AsyncEventsReceived、AsyncEventAge、AsyncEventsDropped の 3 種類です。これまで Lambda では、非同期リクエストの処理状況をほとんど把握できませんでした。また、非同期イベント処理の効率を下げる処理遅延の解決は、Lambda サービスチームに依存する必要がありました。今回追加されたメトリクスを使用すれば、非同期呼び出しの処理状況をより詳細に把握できます。さらに、Lambda に送信されたイベントの追跡、イベント処理における遅延のモニタリング、必要に応じた修正措置の実行も可能です。

AsyncEventsReceived は、Lambda が正常に処理キューに入れることのできたイベントの合計数を表す指標です。このメトリクスにより、非同期呼び出しのために Lambda 関数に送信されたイベントの件数を把握できます。このメトリクスのモニタリングを行ったりアラームを設定したりすれば、イベントソースから想定外の件数のイベントが送信されている状況を検出可能です。これによりトリガーの誤設定や関数のエラーを診断できます。

AsyncEventAge は、Lambda がイベントを正常にキューに入れて関数を呼び出すまでの時間を表す指標です。このメトリクスの値は、実行の失敗やスロットリングが原因でイベントが再試行されると増加します。非同期 Lambda 呼び出しのイベント処理時間を把握するためのメトリクスです。このメトリクスのモニタリングを行ったりアラームを設定したりすれば、処理遅延に関するさまざまな統計データを取得できます。

AsyncEventsDropped は、正常に関数を実行することなく削除されたイベントの合計数を表す指標です。OnFailure 送信先またはデッドレターキュー (DLQ) が設定されている場合、イベントは削除される前にそこに送られます。イベントが削除される理由はさまざまです。最大イベント経過時間を超過した、最大試行回数に達した、関数の予約同時実行数が 0 に設定されている、といったものがあります。

新しいメトリクスの詳細については、Lambda デベロッパーガイドおよび AWS Compute Blog (AWS コンピューティングブログ) をご確認ください。Lambda による Amazon CloudWatch へのメトリクス送信に、料金はかかりません。ただし、CloudWatch Metric Streams と CloudWatch アラームの使用には料金が発生します。詳細は CloudWatch 料金表で公開中です。