在亚马逊中使用 Lambda Insights CloudWatch - Amazon Lambda
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

在亚马逊中使用 Lambda Insights CloudWatch

Amazon CloudWatch Lambda Insights 为您的无服务器应用程序收集和汇总 Lambda 函数运行时性能指标和日志。本页将介绍如何启用和使用 Lambda Insights 来诊断 Lambda 函数的问题。

Lambda Insights 如何监视无服务器应用程序

CloudWatch Lambda Insights 是一款针对在其上运行的无服务器应用程序的监控和故障排除解决方案。Amazon Lambda该解决方案收集、聚合和汇总系统级指标,包括 CPU 时间、内存、磁盘和网络使用情况。它还收集、聚合和汇总诊断信息(如冷启动和 Lambda 工件关闭),以帮助您隔离 Lambda 函数的问题并快速解决这些问题。

Lambda Insights 使用新的 Lambda Insights 扩展,该扩展是作为 CloudWatch Lambda 层提供的。当您在支持的运行时的 Lambda 函数上启用此扩展时,它会收集系统级指标,并在每次调用该 Lambda 函数时发出一个性能日志事件。 CloudWatch 使用嵌入式指标格式从日志事件中提取指标。有关更多信息,请参阅使用 Amazon Lambda 扩展

Lambda Insights 层扩展 /aws/lambda-insights/ 日志组的 CreateLogStreamPutLogEvents

定价

当您为 Lambda 函数启用 Lambda Insights 时,Lambda Insights 会报告每个函数 8 个指标,并且每次函数调用都会向发送大约 1KB 的日志数据。 CloudWatch您只需为 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
  1. 打开 Lamba 控制台的函数页面

  2. 选择您的函数。

  3. 选择 Configuration 选项卡。

  4. 在左侧菜单中,选择监控和操作工具

  5. 其他监控工具窗格上,选择编辑

  6. CloudWatch Lambda Insights 下,启用 Enhanced monitoring(增强监控)

  7. 选择保存

以编程方式启用 Lambda Insights

还可以使用 Amazon Command Line Interface (Amazon CLI)、Amazon Serverless Application Model (SAM) CLI、Amazon CloudFormation 或 Amazon Cloud Development Kit (Amazon CDK) 启用 Lambda Insights。当您在支持的运行时以编程方式对函数启用 Lambda Insights 时,会将该CloudWatchLambdaInsightsExecutionRolePolicy策略 CloudWatch 附加到您的函数的执行角色。

有关更多信息,请参阅亚马逊 CloudWatch 用户指南中的 Lambda Insights 入门

使用 Lambda Insights 控制面板

Lambda Insights 控制面板在 CloudWatch 控制台中有两个视图:多功能概述和单功能视图。多函数概览聚合当前Amazon账户和区域中 Lambda 函数的运行时指标。单函数视图显示单个 Lambda 函数的可用运行时指标。

您可以使用控制台中的 Lambda Insights CloudWatch 控制面板多功能概述来识别过度利用和未充分利用的 Lambda 函数。您可以使用控制台中的 Lambda Insights CloudWatch 控制面板单功能视图对单个请求进行故障排除。

查看所有函数的运行时指标
  1. 在 CloudWatch 控制台中打开多功能页面。

  2. 从预定义的时间范围中进行选择,或选择自定义时间范围。

  3. (可选)选择 “添加到控制面板”,将小组件添加到您的 CloudWatch 控制面板。

    
            Lambda Insights 控制面板上的多函数概览。
查看单个函数的运行时指标
  1. 在 CloudWatch 控制台中打开单功能页面。

  2. 从预定义的时间范围中进行选择,或选择自定义时间范围。

  3. (可选)选择 “添加到控制面板”,将小组件添加到您的 CloudWatch 控制面板。

    
            Lambda Insights 控制面板上的单函数视图。

有关更多信息,请参阅在 CloudWatch 仪表板上创建和使用小组件

检测函数异常的工作流程示例

您可以使用 Lambda Insights 控制面板上的多函数概览来识别和检测函数的计算内存异常。例如,如果多函数概述指示函数正在使用大量内存,则可以在内存使用情况窗格中查看详细的内存利用率指标。然后,您可以转到“指标”控制面板以启用异常检测或创建警报。

为函数启用异常检测
  1. 在 CloudWatch 控制台中打开多功能页面。

  2. 函数摘要下,选择函数的名称。

    单函数视图随即打开,其中包含函数运行时指标。

    
            Lambda Insights 控制面板上的函数摘要窗格。
  3. 内存使用情况窗格中,选择三个竖直的点,然后选择在指标中查看,以打开指标控制面板。

    
            内存使用情况窗格上的菜单。
  4. 绘成图表的指标选项卡的操作列中,选择第一个图标以便为函数启用异常检测。

    
            Memory Usage(内存使用情况)窗格的 Graphed metrics(绘成图表的指标)选项卡。

有关更多信息,请参阅使用 CloudWatch 异常检测

使用查询排除函数故障的示例工作流程

您可以使用 Lambda Insights 控制面板上的单函数视图来识别函数持续时间峰值的根本原因。例如,如果多函数概述指示函数持续时间大幅增加,则可以暂停或选择持续时间窗格中的每个函数,以确定导致增加的函数。然后,您可以转到单函数视图并查看应用程序日志以确定根本原因。

对函数运行查询
  1. 在 CloudWatch 控制台中打开多功能页面。

  2. 持续时间窗格中,选择要筛选持续时间指标的函数。

    
            在持续时间窗格中选择的函数。
  3. 打开单函数页。

  4. 选择按函数名称筛选指标下拉列表,然后选择您的函数。

  5. 要查看最近 1000 个应用程序日志,请选择应用程序日志选项卡。

  6. 查看时间戳消息,以确定要进行故障排除的调用请求。

    
            最近 1000 个应用程序日志。
  7. 要显示最近 1000 次调用,请选择调用选项卡。

  8. 对于要排除故障的调用请求选择时间戳消息

    
            选择最近的调用请求。
  9. 选择查看日志下拉列表,然后选择查看性能日志

    将在 Logs Insights 控制面板中打开为您的函数自动生成的查询。

  10. 选择运行查询以便为调用请求生成日志消息。

    
            在 Logs Insights 控制面板中查询选定的函数。

接下来做什么?