如何监控Lambda运行时,包括每个函数的API网关开销?



考虑以下CloudWatch在API网关上的警报:

LatencyAlarmP90:
Type: AWS::CloudWatch::Alarm
Condition: Production
Properties:
AlarmDescription: latency P90 is lower then 1.5 sec
AlarmName: FooApiP90LatencyAlarm
ComparisonOperator: GreaterThanOrEqualToThreshold
ExtendedStatistic: "p90"
Period: 300
MetricName: "Latency"
DatapointsToAlarm: 5
EvaluationPeriods: 5
Threshold: 1500
Namespace: AWS/ApiGateway
Dimensions:
- Name: ApiName
Value: !Sub "bar"
AlarmActions:
- Fn::ImportValue: !Sub "foo"
OKActions:
- Fn::ImportValue: !Sub foo"

如果这个警报触发,我没有办法知道是哪个特定的路由触发了它(多个lambdas在同一个API网关上)。

我正在考虑监控每个Lambda。

如果我监控一个特定的Lambda延迟,它是否包括API网关延迟?(冷启动)还是只运行时?

如果没有,是否有一种方法来监控特定的路由/Lambda包括API网关延迟?

如果我监视特定的Lambda延迟,它是否包括API网关延迟?

Duration性能指标不包括任何API网关延迟&是Lambda函数的运行时间,按docs四舍五入到最接近的毫秒。


如果没有,是否有一种方法来监控特定的路由/Lambda包括API网关延迟?

每个路由是,每个Lambda否

对于还包括API网关开销的度量,使用Latency度量API GW。

Per Lambda函数不支持分配度量值并进行过滤的维度,但您可以通过使用各种其他维度(包括路由)来实现最终结果。

不可避免地,如果同一个Lambda函数负责多条路由,则需要更多的告警。

你必须过滤你的闹钟:

  • ApiId,阶段
  • ApiId
  • <
  • Api名称/gh>

最新更新