AWS Lambda 指标监控完全指南
Lambda 核心指标详解:调用量、错误、并发、Duration 与冷启动 Init Duration、内存利用率、节流与迭代器延迟;每个指标的含义、告警建议与优化方向。
Lambda 是托管的,但不是"免监控"的——它的失败模式(冷启动、节流、超时、并发打满)全都藏在指标里。CloudWatch 自动采集标准 Lambda 指标;Init Duration、Billed Duration 与内存字段还需区分 REPORT 日志、Lambda Insights 等来源。本文讲清含义与告警建议,不存在适用于所有函数的统一正常水位。
一、调用类指标
| 指标 | 含义 | 关注什么 |
|---|---|---|
| Invocations | 调用次数 | 流量基线;异常下跌需结合触发器与调用错误排查 |
| Errors | 失败的调用数 | 持续非零就该查 |
| DeadLetterErrors | 异步调用进死信队列失败的次数 | 检查 DLQ 权限、配置及大小限制 |
| Throttles | 被限流的调用数 | 并发配额不够的信号 |
Errors 包含代码异常和运行时返回的函数错误(如超时、配置错误),不等于 Lambda 服务自身故障计数。节流及其他调用阶段错误不计入 Invocations/Errors,需另查。告警建议按错误率(Errors/Invocations)而非绝对数——流量波动时绝对数会误报。
二、性能指标
Duration 与 Billed Duration
Duration 是函数执行时长,不含冷启动初始化;Billed Duration 是执行报告中的计费时长,不能与标准 Duration 指标混为一谈。盯 P95/P99 而非平均值——平均值掩盖长尾。Duration 持续上涨可能来自下游依赖变慢、代码路径变化或资源竞争,应结合日志与链路区分。
Init Duration(冷启动)
新执行环境初始化花的时间,需从相应日志或增强遥测读取。耗时取决于运行时与初始化工作,不能固定为 1–3 秒,也不能仅凭 P99 与 P50 的差距认定冷启动。缓解手段可评估预置并发、受支持运行时的 SnapStart(不只 Java)与精简初始化工作;SnapStart 与预置并发不能直接组合。
MaxMemoryUsed vs MemorySize
实际使用内存与分配内存可从 REPORT 日志等来源核对;Lambda Insights 还提供增强内存指标。CPU 分配与配置内存相关,低内存利用率不能单独证明浪费,应结合执行时长与成本实测;贴近上限需排查 OOM 风险。
三、并发指标
- ConcurrentExecutions:当前并发实例数。接近账户/函数级并发上限时,新请求会被限流;
- ProvisionedConcurrencySpilloverInvocations:预置并发用尽后溢出的调用(可能复用温热的按需环境,不保证每次冷启动)。
四、流式场景:IteratorAge
Kinesis/DynamoDB Streams 触发时,IteratorAge(记录积压时长,毫秒)是最重要的健康指标——它直接回答"我的消费速度跟不跟得上生产速度"。持续上涨需排查处理失败、重试、节流与吞吐瓶颈,再决定批量和并发。SQS 应查看 ApproximateAgeOfOldestMessage 等队列指标及适用的事件源映射指标。
告警配置建议
先核对函数、地域、统计方式和采集周期。将指标接入观测云时,按 AWS Lambda 集成文档配置云同步任务与访问权限,再与 CloudWatch 同一时间窗的调用量、错误量对比,确认后再设置阈值。冷启动日志与链路数据需要单独确认采集来源。
以下数值仅作起点,须按流量基线、SLO 与可接受延迟验证;不是通用生产阈值。
| 指标 | 阈值建议 | 级别 |
|---|---|---|
| 错误率 | > 1% 持续 5 分钟 | 紧急 |
| Throttles | > 0 | 警告 |
| Duration P99 | > 超时的 50% | 警告 |
| IteratorAge | 持续上涨 15 分钟 | 紧急 |
| Invocations | 跌为 0(该有流量的时段) | 警告 |
常见问题(FAQ)
Q:Lambda 超时设多少合适?
A:结合执行分布、依赖超时、重试和调用方截止时间设定,P99 倍数仅可作初始参考。API Gateway 上限依 API 类型和配额配置而异,不是统一 29 秒。长任务考虑 Step Functions 编排或迁移到 ECS/Fargate。
Q:函数一直没被调用,监控什么?
A:定时触发的函数(EventBridge 调度)恰恰要监控 Invocations==0——调度规则失效是静默故障,用心跳式监控兜底;无调用可能表现为缺失数据而非显式 0,须配置缺失数据判断。
Q:X-Ray 和指标是什么关系?
A:指标回答"出问题了没有",X-Ray 追踪回答"问题在哪一段"。需要把函数链路送到观测云时,另按 AWS Lambda 扩展文档配置,不能把云指标同步当作链路接入。