我正在构建一个云手表警报,当lambda函数在5分钟内未被调用时发送电子邮件
CloudWatchAlarm:
Type: AWS::CloudWatch::Alarm
Properties:
AlarmActions:
- !Ref SNSTopic
AlarmDescription: Send email if lambda function was not called within 5 minutes
Dimensions:
-
Name: "FunctionName"
Value: "my-lambda"
ComparisonOperator: LessThanThreshold
EvaluationPeriods: 1
MetricName: Invocations
Namespace: AWS/Lambda
Period: 300
Statistic: Sum
Threshold: 1
TreatMissingData: breaching
DatapointsToAlarm: 1
因此,当函数被调用时,调用度量变为1,警报进入OK状态。但是,当超过5分钟没有调用该函数时,闹钟没有回到alarm状态。实际上需要15分钟才能进入报警状态。
如果我放一个小句号,它确实花了更少的时间回到ALARM状态。我不明白月经是怎么起作用的。
有没有人知道这种配置是否真的可能在云观察警报?我应该如何确定周期和评估周期,以便在5分钟内收到电子邮件?
这可能是因为报警状态不是使用Period
进行评估的,而是使用所谓的评估范围,其周期可能更长。更重要的是,你不能控制评估范围。
类似的连续波延迟问题在,例如:
- 告警数据泄露与告警状态变化之间无法解释的延迟
从链接:
在这种情况下,当alarm没有转换到OK状态时,它使用的是之前在评估范围中的数据点。按预期计算其状态
所以在你的情况下,评估范围似乎回到了15分钟。