AWS Lambda
开发人员指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

AWS Lambda 指标

本主题介绍 AWS Lambda 命名空间、指标和维度。AWS Lambda 会自动替您监控函数,并通过 Amazon CloudWatch 报告各项指标。这些指标包括总调用数、错误数、持续时间、限制、DLQ 错误和基于流的调用的迭代器期限。

CloudWatch 基本上是一个指标存储库。指标是 CloudWatch 中的核心概念,代表了数据点的时间顺序集。您(或 AWS 服务)可将指标数据点发布到 CloudWatch,并且您可以按一组有序的时间序列数据来检索关于这些数据点的统计数据。

指标通过名称、命名空间以及一个或多个维度进行唯一定义。每个数据点都有一个时间戳和一个度量单位(可选)。当请求统计数据时,返回的数据流根据命名空间、指标名称和维度加以识别。有关 CloudWatch 的更多信息,请参阅 Amazon CloudWatch 用户指南

AWS Lambda CloudWatch 指标

AWS/Lambda 命名空间包括以下指标。

指标 描述
Invocations

测量某个函数在响应某个事件或调用 API 调用时被调用的次数。这将替代已弃用的 RequestCount 指标。这包括成功调用和失败调用,但不包括被阻止的尝试。这等于函数的计费请求数。请注意,如果这些指标具有非零值,则 AWS Lambda 仅将这些指标发送到 CloudWatch。

单位:计数

Errors

测量由于函数出错(响应代码 4XX)而导致失败的调用数。这将替代已弃用的 ErrorCount 指标。失败的调用可能会触发成功的重试尝试。这包括:

  • 已处理的异常 (例如 context.fail(error))

  • 导致代码退出的未处理的异常

  • 内存不足异常

  • 超时

  • 权限错误

这不包括由于调用速率超出默认并行限制(错误代码 429)导致失败的调用或由于内部服务错误(错误代码 500)导致的失败。

单位:计数

DeadLetterErrors

当 Lambda 无法将失败的事件负载写入您配置的死信队列时将提高。原因可能如下:

  • 权限错误

  • 下游服务限制

  • 资源配置错误

  • 超时

单位:计数

Duration

测量从函数代码作为调用的结果开始执行到其停止执行所经过的时间。可能的最大数据点值为函数超时配置。计费的持续时间将向上涉入到近 100 毫秒。请注意,如果这些指标具有非零值,则 AWS Lambda 仅将这些指标发送到 CloudWatch。

单位:毫秒

Throttles

测量由于调用速率超过客户的并行限制(错误代码 429)而被阻止的 Lambda 函数调用尝试次数。失败的调用可能会触发成功的重试尝试。

单位:计数

IteratorAge

仅为基于流的调用发出(由 Amazon DynamoDB 流或 Kinesis 流触发的功能)。度量每一批已处理记录的最后一条记录的年限。年限是 Lambda 收到批次的时间与批次中的最后一条记录写入到流的时间之差。

单位:毫秒

ConcurrentExecutions

针对账户中的所有函数以及指定了自定义并发限制的函数,作为聚合指标发布。不适用于版本或别名。衡量给定函数在给定时间点并发执行的总和。如果在一个时间段内聚合,则必须将其视为平均指标。

单位:计数

UnreservedConcurrentExecutions

仅作为账户中所有函数的聚合指标发出。不适用于函数、版本或别名。表示没有指定自定义并发限制的函数的并发总和。如果在一个时间段内聚合,则必须将其视为平均指标。

单位:计数

使用 CloudWatch 控制台访问指标

  1. 通过以下网址打开 CloudWatch 控制台:https://console.amazonaws.cn/cloudwatch/

  2. 在导航窗格中,选择 Metrics

  3. CloudWatch Metrics by Category 窗格中,选择 Lambda Metrics

错误/调用比率

当计算 Lambda 函数调用的错误率时,区分调用请求和实际调用非常重要。错误率有可能超过已计费 Lambda 函数调用的数量。Lambda 仅在执行 Lambda 函数代码时才报告调用指标。如果调用请求产生某种限制或其他初始化错误,并因此阻止调用 Lambda 函数代码,则 Lambda 将报告错误,但不记录调用指标。

  • 执行函数时,Lambda 会发出 Invocations=1。如果未执行 Lambda 函数,则什么也不发出。

  • Lambda 为每个调用请求发出一个 Errors 数据点。Errors=0 表示不存在函数执行错误。Errors=1 表示存在函数执行错误。

  • Lambda 为每个调用请求发出一个 Throttles 数据点。Throttles=0 表示不存在调用限制。Throttles=1 表示存在调用限制。

AWS Lambda CloudWatch 维度

您可以用下表中的维度来优化针对您的 Lambda 函数返回的指标。

维度 描述
FunctionName

按 Lambda 函数筛选指标数据。

Resource

按 Lambda 函数资源 (如函数版本或别名) 筛选指标数据。

ExecutedVersion

按 Lambda 函数版本筛选指标数据。这仅适用于别名调用。