前提
・検証OS:Redhat Linux 8.2
・検証用EC2にCloudWatchAgentServerPolicy権限が付与されること
・検証用EC2にbcがインストールされること
現象
Amazon CloudWatch を使用してRDSのメモリメトリクスを取得できますが、下記のような値でしかなく、利用率の取得ができないです。
メトリクス | コンソール名 | 説明 | 単位 |
---|---|---|---|
FreeableMemory | 解放可能なメモリ (MB) | 使用可能な RAM の容量。 | バイト |
【参考】
Amazon CloudWatch を使用した Amazon RDS メトリクスのモニタリング
メモリのメトリクス(単位:パーセント)の取得手順
・メモリのメトリクスを取得(単位:バイト)
・計算してパーセント単位のメモリのメトリクスを取得
メモリのメトリクスを取得(単位:バイト)
コマンド:
aws cloudwatch get-metric-statistics \
--namespace "AWS/RDS" \
--metric-name "FreeableMemory" \
--dimensions Name=DBInstanceIdentifier,Value="DB識別子" \
--statistics Maximum \
--start-time 2021-08-29T00:00:00 --end-time 2021-08-29T23:59:59 --period 300
計算してパーセント単位のメモリのメトリクスを取得
サンプル
RDS_MEM_FREE_SIZE_BYTE=$(aws cloudwatch get-metric-statistics \
--namespace "AWS/RDS" \
--metric-name "FreeableMemory" \
--dimensions Name=DBInstanceIdentifier,Value="DB識別子" \
--statistics Maximum \
--start-time 2021-08-29T00:00:00 --end-time 2021-08-29T23:59:59 --period 300)
RDS_MEM_SIZE_GB=16
RDS_MEM_SIZE_BYTE=$(expr $RDS_MEM_SIZE_GB "*" 1000 "*" 1000 "*" 1000)
RDS_MEM_FREE_SIZE_PERCENT=`echo "scale=5; $RDS_MEM_FREE_SIZE_BYTE/$RDS_MEM_SIZE_BYTE" "*" 100 | bc`
RDS_MEM_USED_PERCENT=`echo "scale=5; 100 - $RDS_MEM_FREE_SIZE_PERCENT" | bc`
参考
bcがインストールされているかどうかの確認(rootユーザ)
find / -name bc
bcがインストールコマンド(rootユーザ)
yum install bc -y
【 bc 】コマンド――対話的に計算する、小数点以下の桁数を指定して計算する