LambdaのCloudWatchAlarmを設定してみる
目的
安心して過ごせるようにLambdaにアラームを設定したいと思います。
説明
CloudWatchAlarmの構成要素
アラームを設定するために5つの要素を理解する必要があります。
Period(期間)
メトリクスを評価する時間です。例えば60秒を設定した場合、実行時間が1秒を超えているものがこの60秒間に何回起きているのか?を数えるものです。このPeriodだけでアラーム即発動というわけでは無く、次の指標が関係してきます。
EvaluationPeriods(評価期間)
上のPeriodが何回起きた時にアラートを発生させるのかとい指標です。例えば2に設定すると、上の例だと2分でそれぞれ実行回数が超えているかを数えて、2回連続ならアラートになります。
Statistic(統計)
値の取り方、集計の仕方です。平均、最大、最小、合計などです。
他にもパーセンタイルというのがあって、これはP90なら90%の数値は指定値以下であるみたいな取り方です。
ComparisonOperator(比較演算子)
これはしきい値との比較の方法です。>, <, >=, <=
Threshold(しきい値)
どのくらいの値に達したらアラームにするかと値です。
見ていくLambdaの指標
Duration(実行時間)
Lambdaの実行時間になります。以下のように設定しました。
Period: 60
EvaluationPeriods: 1
Statistic: p90
ComparisonOperator: GreaterThanOrEqualToThreshold
Threshold: 1000
これは60秒の間に1回でも1000msを超えたものがあったら通知してほしいが、p90なので10%くらいは見逃しても良いという設定になります。
Errors(エラーの発生)
Lambdaでエラーが発生した時にカウントされます。
Period: 60
EvaluationPeriods: 1
Statistic: Count
ComparisonOperator: GreaterThanOrEqualToThreshold
Threshold: 1
これは60秒の間で1回でもエラーになったら通知してほしいといっています。
Throttles(実行できなかった数)
Lambdaの実行回数の制限を超えてしまい、実行できなかった数です。
Period: 60
EvaluationPeriods: 1
Statistic: Sum
ComparisonOperator: GreaterThanOrEqualToThreshold
Threshold: 1
少しでも実行できなかったらアラートにしました。
ClaimedAccountConcurrency(アカウントのLambdaの同時実行数)
これは個別のLambdaの指標ではなくて、アカウントでのLambdaの同時実行数です。デフォルトでは1000が指定されていて、上限緩和申請で上げることができます。
Period: 60
EvaluationPeriods: 1
Statistic: Max
ComparisonOperator: GreaterThanOrEqualToThreshold
Threshold: 500
50%超えたらアラームにするようにして、早く気付けるようにしたいです。
Discussion