AWS Lambda 异步调用的新 CloudWatch 指标

AWS Lambda新增异步调用监控指标

AWS最近为Amazon CloudWatch新增了三个AWS Lambda的监控指标:AsyncEventsReceivedAsyncEventAgeAsyncEventsDropped,以帮助开发者更好地监控异步事件处理的性能。

背景与问题

此前,Lambda用户对异步请求的处理缺乏可见性,主要依赖Lambda服务团队来解决处理延迟问题,这导致了异步事件处理的低效。新增的三个指标将为开发者提供更好的可见性,帮助他们跟踪发送到Lambda的事件。

新增指标详解

  • AsyncEventsReceived:用于衡量Lambda成功排队等待处理的事件总数。开发者可以通过监控该指标来诊断事件源发送的事件数量异常,或检测触发器的配置错误或失控的函数。
  • AsyncEventAge:用于衡量Lambda成功将事件排队到实际调用函数之间的时间。该指标为开发者提供了异步Lambda调用事件处理时间的透明度,帮助监控处理延迟。
  • AsyncEventsDropped:用于衡量未成功执行函数而被丢弃的事件总数。事件丢弃的原因可能包括超过最大事件年龄、重试次数耗尽或函数预留并发设置为0等。

监控与报警

开发者可以通过客户端的自定义CloudWatch指标或使用嵌入式指标格式 (EMF)从日志中提取这些事件。

最佳实践

AWS Compute的博客中,作者Arthi Jaganathan和Dhiraj Mahapatro建议,最佳实践是使用错误指标报警,并通过这些新指标深入了解重试行为,例如重试间隔。例如,如果函数因下游系统过载而失败,可以使用AsyncEventAge和并发指标。如果收到函数错误报警,可以查看AsyncEventsDropped的数据点。

AWS官方推荐

AWS首席布道师Danilo Poccia在推特上表示,这些新指标有助于识别处理问题的根本原因,如限流、并发限制、函数错误、重试导致的处理延迟等。

成本说明

Lambda发送到CloudWatch的指标不会产生额外费用,但使用CloudWatch Metric StreamsCloudWatch Alarms会产生费用。

更多资源

开发者可以在Lambda开发者指南中查看更多详细信息,并在GitHub上找到相关指标的示例

阅读 30
0 条评论