测量 AWS Lambda 启动持续时间
Measure AWS Lambda startup duration
我目前正在收集和记录我的函数的性能指标,我唯一缺少的指标是启动持续时间(我的函数非常大,压缩后大约 35MB)。我真的需要知道启动需要多长时间,更重要的是,它发生的频率(我感觉它发生的频率更高,因为我的并发执行限制已经提高)。
有什么方法可以在 Lambda 中检索此信息?或者有人可以想到通过例如 API 网关调用传递当前时间戳的可能性吗?映射模板,所以我可以自己计算启动时间?
目前没有确定的方法来测量函数启动时间。此时,最好的办法是为您的 API 启用 CloudWatch Logs 并处理日志事件的时间戳。很明显哪些调用会触发函数初始化,因为调用 Lambda 前后事件之间的时间差明显高于平均值。基于此,您可以生成一些有关初始化比率和平均初始化时间的统计信息。
谢谢,
瑞安
AWS 最近在 cloudwatch 日志中引入了 Init Duration 以及 Billed Duration 日志,用于在实际调用开始之前测量冷启动 lambda。
来自 Lambda 日志流中的 "Report" 部分
这是我的一个 lambda 的示例日志 -
Duration: 1200.50 ms
Billed Duration: 1300 ms
Memory Size: 3008 MB
Max Memory Used: 308 MB
Init Duration: 4317.73 ms
在 Log insights Cloudwatch 中为 Lambda 函数试试这个:
fields @timestamp, @initDuration
| filter @type = "REPORT"
| sort @timestamp desc
我目前正在收集和记录我的函数的性能指标,我唯一缺少的指标是启动持续时间(我的函数非常大,压缩后大约 35MB)。我真的需要知道启动需要多长时间,更重要的是,它发生的频率(我感觉它发生的频率更高,因为我的并发执行限制已经提高)。
有什么方法可以在 Lambda 中检索此信息?或者有人可以想到通过例如 API 网关调用传递当前时间戳的可能性吗?映射模板,所以我可以自己计算启动时间?
目前没有确定的方法来测量函数启动时间。此时,最好的办法是为您的 API 启用 CloudWatch Logs 并处理日志事件的时间戳。很明显哪些调用会触发函数初始化,因为调用 Lambda 前后事件之间的时间差明显高于平均值。基于此,您可以生成一些有关初始化比率和平均初始化时间的统计信息。
谢谢, 瑞安
AWS 最近在 cloudwatch 日志中引入了 Init Duration 以及 Billed Duration 日志,用于在实际调用开始之前测量冷启动 lambda。
来自 Lambda 日志流中的 "Report" 部分
这是我的一个 lambda 的示例日志 -
Duration: 1200.50 ms
Billed Duration: 1300 ms
Memory Size: 3008 MB
Max Memory Used: 308 MB
Init Duration: 4317.73 ms
在 Log insights Cloudwatch 中为 Lambda 函数试试这个:
fields @timestamp, @initDuration
| filter @type = "REPORT"
| sort @timestamp desc