前提

・検証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 】コマンド――対話的に計算する、小数点以下の桁数を指定して計算する

Last modified: 2021-08-30

Author