3

我想在沒有任何活動時設置要啓動的雲監視警報,例如,如果Lambda函數至少5分鐘未執行,則會觸發雲監視警報。 我成立了一個簡單的測試lambda函數(testLambdaFunc),然後用python腳本如下設置報警:AWS Cloudwatch警報是否可檢測到無活動?

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狀態。這是正常的還是應該報警?如何在無活動的功能上設置發生報警?

回答

4

當CloudWatch指標在5或10分鐘內沒有數據時,任何警報都會進入「INSUFFICIENT_DATA」狀態。這是因爲警報沒有足夠的數據來確定它是否應處於「ALARM」狀態或「OK」狀態。

當您創建CloudWatch警報時,您可以指定一個SNS主題以在警報進入「INSUFFICIENT_DATA」狀態時進行通知。這是作爲put_metric_alarm方法調用的InsufficientDataActions成員的一部分完成的。

如果您希望您的指標在過去5分鐘內始終有數據,則可以使用InsufficientDataActions在沒有足夠數據時觸發警報。基本上告訴你,你沒有獲取數據。我認爲這是你想要的。

+0

好的謝謝。因此,而不是測試Invocations = 0我應該在InsufficientDataActions上設置警報,是嗎? – Darren

+0

對。數據= 0與沒有數據不同。 –