AWS Cloudwatch 警报是否检测不到 activity?

Can AWS Cloudwatch alarms detect no activity?

我想将云监视警报设置为在没有 activity 时触发,例如,当 Lambda 函数至少 5 分钟未执行时触发云监视警报。 我设置了一个简单的测试 lambda 函数 (testLambdaFunc),然后使用 python 脚本设置了一个警报,如下所示:

import boto3
lambdaFunction = 'testLambdaFunc'
alarmName = 'testLambdaAlarm'
client = boto3.client("cloudwatch")
# create alarm to fire after five minutes of inactivity
response = client.put_metric_alarm(
AlarmName=alarmName,
AlarmActions=[],
MetricName='Invocations',
Namespace='AWS/Lambda',
Dimensions=[
{
'Name': 'FunctionName',
'Value': lambdaFunction
},
],
Statistic='Average',
Period=300,
EvaluationPeriods=1,
Threshold=0,
ComparisonOperator='LessThanOrEqualToThreshold'
)

创建警报后立即进入数据不足状态。然后我触发 lambda 函数一次以获取数据点。警报进入 OK 状态,然后大约 10 分钟后返回 INSUFFICIENT DATA 状态。这是正常的还是应该报警?如何设置在函数 no activity 时触发的警报?

当 CloudWatch 指标在 5 或 10 分钟内没有数据时,任何警报都将进入 "INSUFFICIENT_DATA" 状态。这是因为警报没有足够的数据知道它应该处于 "ALARM" 状态还是 "OK" 状态。

创建 CloudWatch 警报时,您可以指定 SNS 主题以在警报进入 "INSUFFICIENT_DATA" 状态时发出通知。这是作为 put_metric_alarm 方法调用的 InsufficientDataActions 成员的一部分完成的。

如果您希望指标在过去 5 分钟内始终有数据,则可以使用 InsufficientDataActions 在数据不足时触发警报。本质上是告诉您您没有获取数据。我想这就是你想要的。

https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cw-alarm.html

您可以在此处使用 TreatMissingData 属性。