监控 Lambda SnapStart
您可以使用 Ama CloudWatch zon 和,监控您的 Lambda SnapStart 函数。Amazon 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
记录中。此记录显示 Init 阶段 的持续时间详细信息,包括任何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 之外还原快照所花费的时间付费。
的遥测 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 返回响应之间的时间)。