Posted at

AWS CLI で CloudWatch からデータを取る

More than 1 year has passed since last update.

良くは実行しないけど、使う時に忘れているのでコマンドそのままで備忘録。

定期的に実行して値をログに書いとけば、後でグラフも集計もできる。


ELB のバランシング数の取得

jqで整形して、バランシング数のみを取得

aws elb describe-instance-health

--profile プロファイル名

--load-balancer-name ELB名

| jq '.InstanceStates[]|{InstanceId, State}'


S3 の配置ファイル名一覧の取得

S3内にあるファイル名一覧を取得

aws s3

--recursive

--profile プロファイル名 ls バケット名


EC2 のCPU使用率の取得

2行取得して、jqで整形して、CSV化して、最後(最新)の1行の使用率のみを取得

aws cloudwatch get-metric-statistics

--namespace AWS/EC2

--profile プロファイル名

--metric-name CPUUtilization

--start-time date -u -d '9 minutes ago' +%Y-%m-%dT%TZ

--end-time date -u +%Y-%m-%dT%TZ

--period 300

--statistics Maximum

--dimensions Name=InstanceId,Value=インスタンス名

| jq -r '.Datapoints[] | [ .Timestamp ,.Maximum] | @csv'

| sort | tail -1 | cut -d',' -f2


RDS(segment-info)のCPU使用率の取得

2行取得して、jqで整形して、CSV化して、最後(最新)の1行の使用率のみを取得

aws cloudwatch get-metric-statistics

--namespace AWS/RDS

--profile プロファイル名

--metric-name CPUUtilization

--start-time date -u -d \'9 minutes ago\' +%Y-%m-%dT%TZ

--end-time date -u +%Y-%m-%dT%TZ

--period 300

--statistics Maximum

--dimensions="Name=DBInstanceIdentifier,Value=インスタンス名"

| jq -r '.Datapoints[] | [ .Timestamp ,.Maximum] | @csv'

| sort | tail -1 | cut -d',' -f2