使用 AWS Lambda 函数指标 - AWS Lambda

使用 AWS Lambda 函数指标

当您的函数完成对事件的处理时,Lambda 会将有关调用的指标发送到 Amazon CloudWatch。您可以在 CloudWatch 控制台中使用这些指标构建图表和控制面板,并设置警报以响应利用率、性能或错误率的变化。使用维度可以按函数名称、别名或版本对函数指标进行筛选和排序。

在 CloudWatch 控制台中查看指标

  1. 打开 Amazon CloudWatch 控制台的指标页面AWS/Lambda 命名空间)。

  2. 选择维度。

    • 按函数名称 (FunctionName) – 查看函数的所有版本和别名的聚合指标。

    • 按资源 (Resource) – 查看函数的版本或别名的指标。

    • 按已执行版本 (ExecutedVersion) – 查看别名和版本组合的指标。使用 ExecutedVersion 维度可以比较函数的两个版本的错误率,这两个版本都是加权别名的目标。

    • 跨所有函数(无)– 查看当前 AWS 区域中所有函数的聚合指标。

  3. 选择指标以将其添加到图表。

默认情况下,图表将使用所有指标的 Sum 统计数据。要选择其他统计数据并自定义图表,请使用 Graphed metrics (图表化指标) 选项卡上的选项。

指标上的时间戳反映函数被调用的时间。根据执行的持续时间,这可能是发出指标前的几分钟。例如,如果您函数的超时值为 10 分钟,请查看 10 分钟之前的情况,以获取准确的指标。

有关 CloudWatch 的更多信息,请参阅 Amazon CloudWatch 用户指南

使用调用指标

调用指标是调用结果的二进制指示器。例如,如果函数返回一个错误,则 Lambda 会发送值为 1 的 Errors 指标。要获取每分钟发生的函数错误计数,请查看一分钟时段内的 Errors 指标的 Sum

应使用 Sum 统计数据查看以下指标。

调用指标

  • Invocations – 函数代码的执行次数,包括成功的执行和导致出现函数错误的执行。如果调用请求受到限制或导致出现调用错误,则不会记录调用。这等于计费请求的数目。

  • Errors – 导致出现函数错误的调用的次数。函数错误包括您的代码所引发的异常和 Lambda 运行时所引发的异常。运行时返回因超时和配置错误等问题导致的错误。要计算错误率,请将 Errors 的值除以 Invocations 的值。

  • DeadLetterErrors – 对于异步调用,为 Lambda 尝试将事件发送到死信队列但失败的次数。权限错误、资源误配或大小限制可能会致发生死信错误。

  • DestinationDeliveryFailures – 对于异步调用,Lambda 尝试将事件发送到目标但失败的次数。权限错误、资源误配或大小限制可能会导致发生传输错误。

  • Throttles – 受限制的调用请求数。当所有函数实例都在处理请求并且没有用于扩展的并发性时,Lambda 将拒绝其他请求,并出现 TooManyRequestsException。受限制的请求和其他调用错误不会计为 InvocationsErrors

  • ProvisionedConcurrencyInvocations – 根据预置的并发性执行函数代码的次数。

  • ProvisionedConcurrencySpilloverInvocations – 在使用所有预置的并发性时基于标准并发性执行函数代码的次数。

使用性能指标

性能指标提供了有关单个调用的性能详细信息。例如,Duration 指标指示函数处理事件所花费的时间量(以毫秒为单位)。要了解函数处理事件的速度,请使用 AverageMax 统计数据查看这些指标。

性能指标

  • Duration – 函数代码处理事件所花费的时间量。对于由函数实例处理的第一个事件,该时间量包括初始化时间。调用的计费持续时间是已舍入到最近的 100 毫秒的 Duration 值。

  • IteratorAge – 对于从流读取的事件源映射,为事件中最后一条记录的期限。期限是指流接收记录的时间到事件源映射将事件发送到函数的时间之间的时间量。

Duration 还支持百分位数统计数据。使用百分位数可排除偏离平均统计数据和最大统计数据的异常值。例如,P95 统计数据显示 95% 的执行的最长持续时间,并排除最慢的 5% 的执行。

使用并发指标

Lambda 将并发指标报告为跨函数、版本、别名或 AWS 区域处理事件的实例数的总计数。要查看接近并发限制的程度,请使用 Max 统计数据查看这些指标。

并发指标

  • ConcurrentExecutions – 正在处理事件的函数实例的数目。如果此数目达到区域的并发执行配额或您在函数上配置的预留并发限制,则其他调用请求将受到限制。

  • ProvisionedConcurrentExecutions – 根据预配置并发处理事件的函数实例的数目。对于具有预配置并发的别名或版本的每次调用,Lambda 都会发出当前计数。

  • ProvisionedConcurrencyUtilization – 对于版本或别名,将 ProvisionedConcurrentExecutions 值除以分配的预置并发总数。例如,.5 指明有 50% 的已分配预配置并发正在使用中。

  • UnreservedConcurrentExecutions – 对于 AWS 区域,为由不具有预留并发的函数处理的事件数。