我目前正在收集和记录我的功能的性能指标,我唯一缺少的指标是启动持续时间(我的功能相当大,压缩约35MB)。我真的需要知道启动需要多长时间,更重要的是,它发生的频率(我感觉它的发生频率更高,因为我的并发执行限制已经提高)。
有没有办法在Lambda中检索此信息?或者有人可能会想到通过例如API网关呼叫传递当前时间戳的可能性。映射模板,所以我可以自己计算启动时间吗?
答案 0 :(得分:2)
AWS最近在cloudwatch日志和Billed Duration日志中引入了 Init Duration (初始化持续时间),用于在实际调用开始之前测量冷启动λ。
从Lambda日志流中的“报告”部分
这是我的一个lambda的示例日志-
Duration: 1200.50 ms
Billed Duration: 1300 ms
Memory Size: 3008 MB
Max Memory Used: 308 MB
Init Duration: 4317.73 ms
答案 1 :(得分:1)
目前还没有确定的方法来衡量功能启动时间。目前,您最好的选择是为您的API启用CloudWatch Logs,并处理日志事件的时间戳。应该很明显哪些调用会触发函数初始化,因为调用Lambda之前和之后的事件之间的时间差将显着高于平均值。基于此,您可以生成有关初始化比率和平均初始化时间的一些统计信息。
谢谢, 莱恩