Lambda のモニタリング SnapStart
Amazon 、 CloudWatch、AWS X-Rayおよび を使用して Lambda SnapStart 関数をモニタリングできますLambda Telemetry API。
注記
AWS_LAMBDA_LOG_GROUP_NAME
および AWS_LAMBDA_LOG_STREAM_NAME
環境変数は Lambda SnapStart 関数では使用できません。
CloudWatch の SnapStart
SnapStart 関数のCloudWatch ログストリーム形式にはいくつかの違いがあります。
-
初期化ログ – 新しい実行環境が作成されると、
REPORT
はInit Duration
フィールドを含みません。これは、Lambda が SnapStart 関数の呼び出し時ではなくバージョンを作成するときに関数を初期化するためです。 SnapStart 関数の場合、Init Duration
フィールドはINIT_REPORT
レコードにあります。このレコードには、beforeCheckpoint
ランタイムフックの所要時間を含めた、初期化フェーズ に関する所要時間の詳細情報が表示されています。 -
呼び出しログ – 新しい実行環境が作成されると、
REPORT
はRestore Duration
およびBilled Restore Duration
フィールドを含みます。-
Restore Duration
: Lambda がスナップショットを復元し、ランタイム (JVM) をロードして、afterRestore
ランタイムフックを実行するのにかかる時間。スナップショットを復元するプロセスには、MicroVM 外部でのアクティビティに費やす時間が含まれる場合があります。この時間はRestore Duration
で報告されます。 -
Billed Restore Duration
: Lambda がランタイム (JVM) をロードしてafterRestore
フックを実行するのにかかる時間。スナップショットの復元にかかった時間に対しては請求されません。
-
注記
所要時間の料金は、関数ハンドラーで実行されるコード、ハンドラー外で宣言される初期化コード、ランタイム (JVM) のロードにかかる時間、およびランタイムフックで実行されるすべてのコードに適用されます。詳細については、「SnapStart の料金」を参照してください。
コールドスタートの所要時間は、Restore Duration
と Duration
の合計時間です。
次の例は、関数のレイテンシーパーセンタイルを返す Lambda Insights SnapStartクエリです。Lambda Insights クエリに関する詳細については、「クエリを使用して関数のトラブルシューティングを行うワークフローの例」を参照してください。
filter @type = "REPORT" | parse @log /\d+:\/aws\/lambda\/(?<function>.*)/ | parse @message /Restore Duration: (?<restoreDuration>.*?) ms/ | stats count(*) as invocations, pct(@duration+coalesce(@initDuration,0)+coalesce(restoreDuration,0), 50) as p50, pct(@duration+coalesce(@initDuration,0)+coalesce(restoreDuration,0), 90) as p90, pct(@duration+coalesce(@initDuration,0)+coalesce(restoreDuration,0), 99) as p99, pct(@duration+coalesce(@initDuration,0)+coalesce(restoreDuration,0), 99.9) as p99.9 group by function, (ispresent(@initDuration) or ispresent(restoreDuration)) as coldstart | sort by coldstart desc
の X-Ray アクティブトレース SnapStart
X-Ray を使用して、Lambda SnapStart 関数へのリクエストをトレースできます。 SnapStart 関数の X-Ray サブセグメントにはいくつかの違いがあります。
-
SnapStart 関数の
Initialization
サブセグメントはありません。 -
Restore
サブセグメントは、Lambda がスナップショットを復元し、ランタイム (JVM) をロードして、afterRestore
ランタイムフックを実行するのにかかる時間を表しています。スナップショットを復元するプロセスには、MicroVM 外部でのアクティビティに費やす時間が含まれる場合があります。この時間は、Restore
サブセグメントで報告されます。MicroVM 外部でスナップショットの復元に費やした時間については課金されません。
の Telemetry API イベント SnapStart
Lambda は、次の SnapStart イベントを に送信しますTelemetry API。
-
platform.restoreStart – Restore フェーズの開始時刻を示します。
-
platform.restoreRuntimeDone –
Restore
フェーズが正常に実行されたかどうかを示します。Lambda は、ランタイムがrestore/next
Runtime API リクエストを送信するときに、このメッセージを送信します。可能なステータスには、success (成功)、failure (失敗)、および timeout (タイムアウト) の 3 つがあります。 -
platform.restoreReport –
Restore
フェーズの継続時間と、このフェーズ中に料金が請求されたミリ秒数を示します。
Amazon API Gateway と関数 URL メトリクス
API Gateway を使用してウェブ API を作成する場合、 IntegrationLatencyメトリクスを使用して end-to-end レイテンシーを測定できます (API Gateway がリクエストをバックエンドに中継してからバックエンドからレスポンスを受信するまでの時間)。
Lambda 関数 URL を使用している場合は、 UrlRequestLatencyメトリクスを使用して end-to-end レイテンシーを測定できます (関数 URL がリクエストを受信してから関数 URL がレスポンスを返すまでの時間)。