Amazon web services 测量AWS Lambda启动持续时间

Amazon web services 测量AWS Lambda启动持续时间,amazon-web-services,aws-lambda,aws-api-gateway,Amazon Web Services,Aws Lambda,Aws Api Gateway,我目前正在收集并记录我的函数的性能指标,唯一缺少的指标是启动持续时间(我的函数非常大,压缩了35MB)。我真的需要知道启动需要多长时间,更重要的是,它发生的频率有多高(我觉得自从我的并发执行限制提高以来,它发生的频率越来越高) 有没有办法在Lambda中检索此信息?或者有人可以考虑通过映射模板传递API网关调用的当前时间戳,以便我自己计算启动时间吗?目前没有确定的方法来测量函数启动时间。此时,最好为API启用CloudWatch日志,并处理日志事件的时间戳。很明显,哪些调用会触发函数初始化,因为

我目前正在收集并记录我的函数的性能指标,唯一缺少的指标是启动持续时间(我的函数非常大,压缩了35MB)。我真的需要知道启动需要多长时间,更重要的是,它发生的频率有多高(我觉得自从我的并发执行限制提高以来,它发生的频率越来越高)


有没有办法在Lambda中检索此信息?或者有人可以考虑通过映射模板传递API网关调用的当前时间戳,以便我自己计算启动时间吗?

目前没有确定的方法来测量函数启动时间。此时,最好为API启用CloudWatch日志,并处理日志事件的时间戳。很明显,哪些调用会触发函数初始化,因为调用Lambda之前和之后的事件之间的时间差将显著高于平均值。基于此,您可以生成一些有关初始化比率和平均初始化时间的统计信息

谢谢,
Ryan

AWS最近在cloudwatch日志和计费持续时间日志中引入了一个Init Duration,用于在实际调用开始之前测量冷启动lambda

来自Lambda日志流内的“报告”部分

这是我的一个lambda-

Duration: 1200.50 ms 
Billed Duration: 1300 ms 
Memory Size: 3008 MB 
Max Memory Used: 308 MB 
Init Duration: 4317.73 ms

Cloud Trail应该能够回答“多久一次”的问题好的,谢谢!我已经在这样做了,效果很好。我只是好奇是否有可能以某种方式将这些信息输入Lambda,因为这样我就可以很容易地将其可视化为一个度量。在API网关的变量集中有当前的时间戳是非常酷的!我们会将此添加到我们的待办事项中-谢谢!如果您不介意包括客户端延迟,那么您可以始终在客户端生成时间戳,并将其代理到LambdaIs,逐字逐句?您的持续时间比初始持续时间短多少?@bmm6o。Init持续时间是AWS分配容器、内存、提取映像和调用处理程序函数所花费的时间。因此,您不会对初始持续时间收费。Init Duration用于您需要了解的目的,即每个冷启动请求都会增加性能开销。注意-DB连接初始化和其他全局初始化在计费持续时间内。