mon-get-stats でRDS/ELBのリソース情報を取得
mon-get-stats(CloudWatch API)を使って、RDSやELBのリソース情報を
取得する方法をメモ。Nagios、muninなどのプラグインに組み込みました。
・過去記事
http://xoxo-infra.hatenablog.com/entry/2013/04/04/024554
・CloudWatch API
http://aws.amazon.com/developertools/2534
・mon-get-stats
http://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/cli-mon-get-stats.html
RDSのリソース情報取得
・CPU (Percent)
mon-get-stats \
--metric-name "CPUUtilization" \
--statistics "Maximum" \
--namespace "AWS/RDS" \
--dimensions "DBInstanceIdentifier=DBインスタンス名" \
--start-time `date --iso-8601=seconds --date '6 minutes ago'` \
--end-time `date --iso-8601=seconds --date '1 minutes ago'` \
--period 360
・Memory Free (Byte)
mon-get-stats \
--metric-name "FreeableMemory" \
--statistics "Maximum" \
--namespace "AWS/RDS" \
--dimensions "DBInstanceIdentifier=DBインスタンス名" \
--start-time `date --iso-8601=seconds --date '6 minutes ago'` \
--end-time `date --iso-8601=seconds --date '1 minutes ago'` \
--period 360
mon-get-stats \
--metric-name "SwapUsage" \
--statistics "Maximum" \
--namespace "AWS/RDS" \
--dimensions "DBInstanceIdentifier=DBインスタンス名" \
--start-time `date --iso-8601=seconds --date '6 minutes ago'` \
--end-time `date --iso-8601=seconds --date '1 minutes ago'` \
--period 360
・Disk Free (Byte)
mon-get-stats \
--metric-name "FreeStorageSpace" \
--statistics "Maximum" \
--namespace "AWS/RDS" \
--dimensions "DBInstanceIdentifier=DBインスタンス名" \
--start-time `date --iso-8601=seconds --date '6 minutes ago'` \
--end-time `date --iso-8601=seconds --date '1 minutes ago'` \
--period 360
・Disk IOPS (IOPS= Count/Second)
mon-get-stats \
--metric-name "ReadIOPS" \
--statistics "Maximum" \
--namespace "AWS/RDS" \
--dimensions "DBInstanceIdentifier=DBインスタンス名" \
--start-time `date --iso-8601=seconds --date '6 minutes ago'` \
--end-time `date --iso-8601=seconds --date '1 minutes ago'` \
--period 360
mon-get-stats \
--metric-name "WriteIOPS" \
--statistics "Maximum" \
--namespace "AWS/RDS" \
--dimensions "DBInstanceIdentifier=DBインスタンス名" \
--start-time `date --iso-8601=seconds --date '6 minutes ago'` \
--end-time `date --iso-8601=seconds --date '1 minutes ago'` \
--period 360
・Disk Latency (Seconds)
mon-get-stats \
--metric-name "ReadLatency" \
--statistics "Maximum" \
--namespace "AWS/RDS" \
--dimensions "DBInstanceIdentifier=DBインスタンス名" \
--start-time `date --iso-8601=seconds --date '6 minutes ago'` \
--end-time `date --iso-8601=seconds --date '1 minutes ago'` \
--period 360
mon-get-stats \
--metric-name "WriteLatency" \
--statistics "Maximum" \
--namespace "AWS/RDS" \
--dimensions "DBInstanceIdentifier=DBインスタンス名" \
--start-time `date --iso-8601=seconds --date '6 minutes ago'` \
--end-time `date --iso-8601=seconds --date '1 minutes ago'` \
--period 360
・Disk Throughput (Bytes/Second)
mon-get-stats \
--metric-name "ReadThroughput" \
--statistics "Maximum" \
--namespace "AWS/RDS" \
--dimensions "DBInstanceIdentifier=DBインスタンス名" \
--start-time `date --iso-8601=seconds --date '6 minutes ago'` \
--end-time `date --iso-8601=seconds --date '1 minutes ago'` \
--period 360
mon-get-stats \
--metric-name "WriteThroughput" \
--statistics "Maximum" \
--namespace "AWS/RDS" \
--dimensions "DBInstanceIdentifier=DBインスタンス名" \
--start-time `date --iso-8601=seconds --date '6 minutes ago'` \
--end-time `date --iso-8601=seconds --date '1 minutes ago'` \
--period 360
・MySQL Con
mon-get-stats \
--metric-name "DatabaseConnections" \
--statistics "Maximum" \
--namespace "AWS/RDS" \
--dimensions "DBInstanceIdentifier=DBインスタンス名" \
--start-time `date --iso-8601=seconds --date '6 minutes ago'` \
--end-time `date --iso-8601=seconds --date '1 minutes ago'` \
--period 360
ELBのリソース情報取得
・Latency (Seconds)
mon-get-stats \
--metric-name "Latency" \
--statistics "Maximum" \
--namespace "AWS/ELB" \
--dimensions "LoadBalancerName=ロードバランサ名" \
--start-time `date --iso-8601=seconds --date '6 minutes ago'` \
--end-time `date --iso-8601=seconds --date '1 minutes ago'` \
--period 360
・Request (Count)mon-get-stats \
--metric-name "Request" \
--statistics "Maximum" \
--namespace "AWS/ELB" \
--dimensions "LoadBalancerName=ロードバランサ名" \
--start-time `date --iso-8601=seconds --date '6 minutes ago'` \
--end-time `date --iso-8601=seconds --date '1 minutes ago'` \
--period 360
・ELB StatusCode (Count)
mon-get-stats \
--metric-name "HTTPCode_ELB_4XX" \
--statistics "Maximum" \
--namespace "AWS/ELB" \
--dimensions "LoadBalancerName=ロードバランサ名" \
--start-time `date --iso-8601=seconds --date '6 minutes ago'` \
--end-time `date --iso-8601=seconds --date '1 minutes ago'` \
--period 360
mon-get-stats \
--metric-name "HTTPCode_ELB_5XX" \
--statistics "Maximum" \
--namespace "AWS/ELB" \
--dimensions "LoadBalancerName=ロードバランサ名" \
--start-time `date --iso-8601=seconds --date '6 minutes ago'` \
--end-time `date --iso-8601=seconds --date '1 minutes ago'` \
--period 360
・Backend StatusCode (Count)
mon-get-stats \
--metric-name "HTTPCode_Backend_2XX" \
--statistics "Maximum" \
--namespace "AWS/ELB" \
--dimensions "LoadBalancerName=ロードバランサ名" \
--start-time `date --iso-8601=seconds --date '6 minutes ago'` \
--end-time `date --iso-8601=seconds --date '1 minutes ago'` \
--period 360
mon-get-stats \
--metric-name "HTTPCode_Backend_4XX" \
--statistics "Maximum" \
--namespace "AWS/ELB" \
--dimensions "LoadBalancerName=ロードバランサ名" \
--start-time `date --iso-8601=seconds --date '6 minutes ago'` \
--end-time `date --iso-8601=seconds --date '1 minutes ago'` \
--period 360
mon-get-stats \
--metric-name "HTTPCode_Backend_5XX" \
--statistics "Maximum" \
--namespace "AWS/ELB" \
--dimensions "LoadBalancerName=ロードバランサ名" \
--start-time `date --iso-8601=seconds --date '6 minutes ago'` \
--end-time `date --iso-8601=seconds --date '1 minutes ago'` \
--period 360