本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
監控 Lambda SnapStart
您可以使用 Amazon 監控您的 Lambda SnapStart 函數 CloudWatchAWS X-Ray,和Lambda 遙測 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 見解查詢。 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:
-
platform.restoreStart - 顯示 Restore 階段開始的時間。
-
platform.restoreRuntimeDone - 顯示
Restore
階段是否成功。執行階段傳送restore/next
執行階段 API 請求時,Lambda 會產生此訊息。可能的狀態有三種:成功、失敗和逾時。 -
platform.restoreReport - 顯示
Restore
階段持續的時間長度,以及您須為此階段支付的費用。
Amazon API Gateway 和函數 URL 指標
如果您使用 API Gateway 建立 Web API,則可以使用IntegrationLatency指標來測量 end-to-end 延遲 (API Gateway 將要求轉送至後端,以及從後端收到回應之間的時間)。
如果您使用 Lambda 函數 URL,則可以使用UrlRequestLatency指標來測量 end-to-end 延遲 (函數 URL 接收請求到函數 URL 傳回回應之間的時間)。