Lamdbaの1日あたりの実行回数をFunction毎に出力するワンライナー
list-metrics
でメトリクス一覧を取得して、
get-metric-stastics
で1日の実行回数の合計を取得しています。
list-metrics
のオプションとgrep周りはかなり改善の余地がありそうなのと、
1日毎の実行回数決め打ちになっている部分は工夫の余地がありそうですが、
ワンライナーさくっと試す分には十分便利かなーと思います。
region="ap-northeast-1" aws cloudwatch list-metrics --output json --region ${region} | \ jq -r '.Metrics[] | [ .Namespace ,.MetricName ,.Dimensions[].Name ,.Dimensions[].Value ] | @csv' | \ sort -t ',' -k 1,2 | \ grep Invocations | grep Lambda | grep '"Resource"' | \ awk -F ',' '{print $NF}' | while read line do sum=`aws cloudwatch get-metric-statistics \ --namespace AWS/Lambda \ --metric-name Invocations \ --statistics Sum \ --dimension Name=FunctionName,Value=${line} \ --start-time 2019-12-07T23:18:00Z \ --end-time 2019-12-08T23:18:00Z \ --period 86400 \ --region ${region} | jq .Datapoints[].Sum` if [ -z ${sum} ]; then sum=0 fi echo ${line}, ${sum} done