💨

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