監控 Lambda SnapStart - AWS Lambda

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

監控 Lambda SnapStart

您可 Lambda 使用 Amazon CloudWatch、AWS X-Ray 和 使用遙測 API 即時存取延伸功能的遙測資料 來監控 Lambda SnapStart 函數。

注意

AWS_LAMBDA_LOG_GROUP_NAMEAWS_LAMBDA_LOG_STREAM_NAME 環境變數無法在 Lambda SnapStart 函數中使用。

了解 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 掛鉤所需的時間。

注意

如同所有 Lambda 函數一樣,持續時間費用適用於函數處理常式中執行的程式碼。對於 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

適用於 SnapStart 的 X-Ray 作用中追蹤

您可以使用 X-Ray 來追蹤 Lambda SnapStart 函數的請求。SnapStart 函數的 X-Ray 子區段有一些差異:

  • SnapStart 函數沒有 Initialization 子區段。

  • Restore 子區段會顯示 Lambda 還原快照、載入執行期 (JVM) 和執行任何 afterRestore 執行期勾點所需的時間。還原快照的程序可能包括在 MicroVM 以外的活動上花費的時間。此時間在 Restore 子區段中報告。您不需要為在 MicroVM 外還原快照所花費的時間付費。

SnapStart 的遙測 API 事件

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

Amazon API Gateway 和函數 URL 指標

如果您是使用 API Gateway 建立 Web API,便可以使用 IntegrationLatency 指標來測量端對端延遲 (API Gateway 將請求轉送至後端與收到後端回應之間的時間)。

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