使用 Amazon CloudWatch Lambda 洞察监控函数性能
Amazon CloudWatch Lambda Insights 收集和聚合无服务器应用程序的 Lambda 函数运行时性能指标和日志。本页将介绍如何启用和使用 Lambda Insights 来诊断 Lambda 函数的问题。
小节目录
Lambda Insights 如何监视无服务器应用程序
CloudWatch Lambda Insights 是针对在 AWS Lambda 上运行的无服务器应用程序的监控和故障排除解决方案。该解决方案收集、聚合和汇总系统级指标,包括 CPU 时间、内存、磁盘和网络使用情况。它还收集、聚合和汇总诊断信息(如冷启动和 Lambda 工件关闭),以帮助您隔离 Lambda 函数的问题并快速解决这些问题。
Lambda Insights 使用作为 Lambda 层提供的全新 CloudWatch Lambda Insights 扩展。在 Lambda 函数上为支持的运行时启用此扩展时,它收集系统级指标,并为每次调用该 Lambda 函数发出一个性能日志事件。CloudWatch 使用嵌入式指标格式从日志事件中提取指标。有关更多信息,请参阅使用 AWS Lambda 扩展。
Lambda Insights 层扩展 /aws/lambda-insights/
日志组的 CreateLogStream
和 PutLogEvents
。
定价
当您为 Lambda 函数启用 Lambda Insights 时,Lambda Insights 会为每个函数报告 8 个指标,每个函数调用都会向 CloudWatch 发送约 1KB 的日志数据。您只需为 Lambda Insights 报告的函数指标和日志付费。无最低费用或强制性服务使用政策。如果未调用该函数,则不需要为 Lambda Insights 付费。有关定价示例,请参阅 Amazon CloudWatch 定价
支持的运行时
您可以将 Lambda Insights 与支持 Lambda 扩展的任何运行时一起使用。
在 Lambda 控制台中启用 Lambda Insights
您可以对新函数和现有 Lambda 函数启用 Lambda Insights 增强监控功能。在 Lambda 控制台中为支持的运行时针对函数启用 Lambda Insights 时,Lambda 将 Lambda Insights 扩展作为层添加到函数中,并进行验证或尝试以将 CloudWatchLambdaInsightsExecutionRolePolicy
在 Lambda 控制台中启用 Lambda Insights
打开 Lamba 控制台的函数页面
。 -
选择您的函数。
-
选择 Configuration 选项卡。
-
在左侧菜单中,选择监控和操作工具。
-
在其他监控工具窗格中,选择编辑。
-
在 CloudWatch Lambda Insights 下,启用增强监控。
-
选择保存。
以编程方式启用 Lambda Insights
还可以使用 AWS Command Line Interface (AWS CLI)、AWS Serverless Application Model (SAM) CLI、AWS CloudFormation 或 AWS Cloud Development Kit (AWS CDK) 启用 Lambda Insights。以编程方式在函数上为支持的运行时启用 Lambda Insights 时,CloudWatch 将 CloudWatchLambdaInsightsExecutionRolePolicy
有关更多信息,请参阅 Amazon CloudWatch 用户指南中的 Lambda Insights 入门。
使用 Lambda Insights 控制面板
在 CloudWatch 控制台中,Lambda Insights 控制面板有两个视图:多函数概览和单函数视图。多函数概览聚合当前AWS账户和区域中 Lambda 函数的运行时指标。单函数视图显示单个 Lambda 函数的可用运行时指标。
您可以使用 CloudWatch 控制台中的 Lambda Insights 控制面板多函数概览来识别过度利用和未充分利用的 Lambda 函数。您可以使用 CloudWatch 控制台中的 Lambda Insights 控制面板单函数视图对单个请求进行故障排除。
查看所有函数的运行时指标
-
在 CloudWatch 控制台中打开多函数
页面。 -
从预定义的时间范围中进行选择,或选择自定义时间范围。
-
(可选)选择 Add to dashboard(添加到控制面板)以将小组件添加到 CloudWatch 控制面板。
查看单个函数的运行时指标
-
在 CloudWatch 控制台中打开单函数
页面。 -
从预定义的时间范围中进行选择,或选择自定义时间范围。
-
(可选)选择 Add to dashboard(添加到控制面板)以将小组件添加到 CloudWatch 控制面板。
有关更多信息,请参阅在 CloudWatch 控制面板上创建和使用小组件。
检测函数异常的工作流程示例
您可以使用 Lambda Insights 控制面板上的多函数概览来识别和检测函数的计算内存异常。例如,如果多函数概述指示函数正在使用大量内存,则可以在内存使用情况窗格中查看详细的内存利用率指标。然后,您可以转到“指标”控制面板以启用异常检测或创建警报。
为函数启用异常检测
-
在 CloudWatch 控制台中打开多函数
页面。 -
在函数摘要下,选择函数的名称。
单函数视图随即打开,其中包含函数运行时指标。
-
在内存使用情况窗格中,选择三个竖直的点,然后选择在指标中查看,以打开指标控制面板。
-
在绘成图表的指标选项卡的操作列中,选择第一个图标以便为函数启用异常检测。
有关更多信息,请参阅使用 CloudWatch 异常检测。
使用查询排除函数故障的示例工作流程
您可以使用 Lambda Insights 控制面板上的单函数视图来识别函数持续时间峰值的根本原因。例如,如果多函数概述指示函数持续时间大幅增加,则可以暂停或选择持续时间窗格中的每个函数,以确定导致增加的函数。然后,您可以转到单函数视图并查看应用程序日志以确定根本原因。
对函数运行查询
接下来做什么?
-
参阅 Amazon CloudWatch 用户指南中的创建控制面板,了解如何创建 CloudWatch Logs 控制面板。
-
参阅 Amazon CloudWatch 用户指南中的添加查询到控制面板或导出查询结果,了解如何添加查询到 CloudWatch Logs。