考虑以下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>