監控 Lambda SnapStart - AWS Lambda

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

監控 Lambda SnapStart

您可以使用 Amazon 監控您的 Lambda SnapStart 函數 CloudWatchAWS X-Ray,和Lambda 遙測 API.

注意

AWS_LAMBDA_LOG_GROUP_NAMEAWS_LAMBDA_LOG_STREAM_NAME環境變數在 Lambda SnapStart 函數中不可用。

CloudWatch 對於 SnapStart

與 SnapStart 函數的CloudWatch 日誌流格式有一些差異:

  • 初始化日誌:建立新的執行環境時,REPORT 不會含有 Init Duration 欄位。這是因為 Lambda 會在您建立版本時初始化 SnapStart 函數,而不是在函數叫用期間。對於 SnapStart 函數,Init Duration欄位位於記INIT_REPORT錄中。此記錄會顯示 初始化階段 的持續時間詳細資訊,包括任何 beforeCheckpoint 執行階段掛鉤的持續時間。

  • 調用日誌:建立新的執行環境時,REPORT 會含有 Restore DurationBilled Restore Duration 欄位:

    • Restore Duration:Lambda 還原快照、載入執行時間 (JVM) 和執行任何 afterRestore 執行時間掛鉤所需的時間。還原快照的程序可能包括在 MicroVM 以外的活動上花費的時間。此時間在 Restore Duration 中報告。

    • Billed Restore Duration:Lambda 載入執行時間 (JVM) 和執行任何 afterRestore 掛鉤所需的時間。您不需為還原快照所花的時間支付費用。

注意

持續時間費用適用於在函數處理常式中執行的程式碼、在處理常式之外宣告的初始化程式碼、執行階段 (JVM) 載入所花的時間,以及在執行階段掛鉤中執行的任何程式碼。如需詳細資訊,請參閱 SnapStart 定價

冷啟動持續時間是 Restore Duration + Duration 的總和。

下列範例是傳回函數延遲百分位數的 Lambda 見解查詢。 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 外還原快照所花費的時間付費。

適用於的遙測 API 事件 SnapStart

Lambda 會將下列 SnapStart 事件傳送至遙測 API

Amazon API Gateway 和函數 URL 指標

如果您使用 API Gateway 建立 Web API,則可以使用IntegrationLatency指標來測量 end-to-end 延遲 (API Gateway 將要求轉送至後端,以及從後端收到回應之間的時間)。

如果您使用 Lambda 函數 URL,則可以使用UrlRequestLatency指標來測量 end-to-end 延遲 (函數 URL 接收請求到函數 URL 傳回回應之間的時間)。