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)

通知

アラーム状態トリガー

新しいトピックの作成

Posted by ocarina