CloudWatchによる監視をインスタンス作成と同時に開始すると、最初のデータはINSUFFICIENT_DATAとなって来てしまう。
その後、データ数が集まるとOKに変わるのだが、データの推移からアラートメールとか飛んで来てしまって邪魔になることがある。
そのため、データが入っていないときの値を不明ではなく、しきい値と同じと考えてもらって防ぐことにした。(本当の不足の事態のときに問題になりそうだけど。)
aws cloudwatch --profile {PROFILE} put-metric-alarm \ --alarm-name "{alarm name}" \ --alarm-description "status check alarm for {INSTANCE_ID}" \ --metric-name StatusCheckFailed \ --namespace AWS/EC2 \ --statistic Average \ --dimensions Name=InstanceId,Value={INSTANCE_ID} \ --period 300 \ --evaluation-periods 5 \ --threshold 1 \ --comparison-operator GreaterThanOrEqualToThreshold \ --ok-actions {SNS_TOPIC_ARN} \ --alarm-actions {SNS_TOPIC_ARN} \ --treat-missing-data noBreaching
こんな感じ。最後のtreat-missing-dataを変えることで設定できる。
--treat-missing-data (string) Sets how this alarm is to handle missing data points. If treat-missing-data is omitted, the default behavior of missing is used. For more information, see Configuring How CloudWatch Alarms Treats Missing Data . Valid Values: breaching | notBreaching | ignore | missing
noBreachingはしきい値としてみもらえるので、こちらを指定。飛ばなくなったー!
とか思ったら初回がINSUFFICIENT_DATA→OKになるもんだと思ってたのにINSUFFICIENT_DATA→NGのパターンが。グスン。