You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何监控包含API Gateway开销的单Lambda运行时及链路延迟?

问题1:Lambda监控指标的延迟统计范围

Lambda AWS/Lambda 命名空间下的默认Duration指标仅统计Lambda自身函数处理程序的运行时长,不包含以下开销:

  • API Gateway侧的请求解析、身份鉴权、限流校验、响应序列化、网络传输等耗时
  • Lambda冷启动的初始化阶段耗时(冷启动Init时长为单独的InitDuration指标,同样不计入Duration)

问题2:特定路由/Lambda的全链路延迟(含APIGW开销)监控方案

最轻量化、无需额外业务改造的方案是开启API Gateway的按路径详细指标,直接在原有的APIGW Latency指标基础上增加维度实现路由级监控:

  1. 先在API Gateway的Stage配置中开启详细CloudWatch指标,CloudFormation配置示例如下(在你的AWS::ApiGateway::Stage资源的Properties中新增字段):
MetricsEnabled: true

开启后API Gateway的Latency指标会额外支持Method(请求方法)、Resource(路由路径)两个维度,你可以为每个绑定了Lambda的路由单独配置告警,触发时直接对应到具体路由和绑定的Lambda。
2. 调整你现有的CloudWatch告警配置,增加对应路由的维度即可,示例如下:

LatencyAlarmP90UserGet:
    Type: AWS::CloudWatch::Alarm
    Condition: Production
    Properties:
      AlarmDescription: GET /user接口P90延迟超过1.5秒
      AlarmName: FooApiGetUserP90LatencyAlarm
      ComparisonOperator: GreaterThanOrEqualToThreshold
      ExtendedStatistic: "p90"
      Period: 300
      MetricName: "Latency"
      DatapointsToAlarm: 5
      EvaluationPeriods: 5
      Threshold: 1500
      Namespace: AWS/ApiGateway
      Dimensions:
        - Name: ApiName
          Value: !Sub "bar"
        - Name: Method
          Value: "GET"
        - Name: Resource
          Value: "/user"
      AlarmActions:
        - Fn::ImportValue: !Sub "foo"
      OKActions:
        - Fn::ImportValue: !Sub "foo"

注:你提供的原有告警配置中OKActions的!Sub foo"存在语法错误,缺少前双引号,建议修正为!Sub "foo"。

如果需要更细粒度的链路排查,也可以开启API Gateway和Lambda的X-Ray链路追踪,可直接查看单请求全链路各阶段的耗时分布。


内容的提问来源于stack exchange,提问作者MCMatan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 14:45:05