lambda関数のメモリ監視
メモリのメトリクスは無いのでログから作る
IAM周り
https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/monitoring-cloudwatchlogs.html
admin権限のIAMアカウントで実施したため、未確認
AWSLambdaBasicExecutionRoleAWS
aws iam attach-role-policy --role-name your-role --policy-arn arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole
メトリクスフィルターを作成
CloudWatch > ロググループ > 対象関数名にチェック > アクション > メトリクスフィルターを作成
フィルタパターン
[f1=REPORT, ...]
「パターンをテスト」で実際にテストして問題ないことを確認する。
フィルター名
関数名-MemoryAllocated
メトリクスの詳細
メトリクス名前空間
LambdaMemory
メトリクス名
フィルター名と同じにする
メトリクス値
$13
同様に使用メモリに対してもメトリクスフィルターを作成する。
使用メモリの場合は、
フィルター名
関数名-MemoryUsed
メトリクス名
関数名-MemoryUsed
メトリクス値
$18
アラームの設定
CloudWatch > Metrics > LambdaMemory
グラフ化したメトリクス
- UsedとAllocatedを選択する
- 統計を最大
- 期間を1分
数式 > 一般 > パーセンテージ
ラベル名「式1」を、関数名-MemoryUsedPercent へ変更
100*(m1/m2)
MemoryUser / MemoryAllocated となるようにしてください。
左上のメトリクス名は、関数名-MemoryUsed
関数名-MemoryUsedPercentの右側のアラームを作成
閾値
静的
関数名-MemoryUsedPercent が次の時...
より大きい
... よりも
任意の閾値(0-99)
通知
アラーム状態トリガー
新しいトピックの作成