LoginSignup
1
0

More than 3 years have passed since last update.

RDSの拡張モニタリングのメトリクスをCloudWatchに表示する

Last updated at Posted at 2021-01-13

やりたい事

AWSのRDSで拡張モニタリングを有効にすると、見る事ができるメトリクスが増えます。
ですが、この拡張モニタリングのメトリクスはそのままではCloudWatch側に表示できません。
image.png
RDSのディスク使用率をCloudWatchのダッシュボードでまとめて見たかったので、
拡張モニタリングのメトリクスをCloudWatchで扱えるように設定してみました。

(ここでは拡張モニタリングの有効化については記載しません)

CloudWatchLogsからカスタムメトリクスを登録する

CloudWatch Logs を使用した拡張モニタリングの表示

DB インスタンスの拡張モニタリングを有効にした後、CloudWatch Logs を使用して DB インスタンスのメトリクスを表示できます。

拡張モニタリングのデータはCloudWatchLogsに保存されているようです。
CloudWatchLogsからカスタムメトリクスを登録します。

カスタムメトリクス登録手順

  1. CloudWatchのロググループから RDSOSMetrics を検索して選択します。
    image.png

  2. メトリクスフィルターを作成を選択します。
    image.png

  3. 集計したいメトリクスに合わせたフィルターパターンを設定します。
    フィルターパターンについては後述します。
    image.png

  4. 各種情報を入力して、メトリクスフィルターを作成します。
    メトリクス名前空間名とメトリクス名は、次の手順の画像を見てください。
    メトリクス値については、後述のフィルターパターンを参考にしてください。
    image.png

  5. メトリクスにカスタムメトリクスが表示されるようになりました。
    image.png

フィルターパターンについて

一番ポイントになりそうなフィルターパターンについて。

公式資料はこちら。
ログイベントの語句の一致

拡張モニタリングのデータはJSON形式なので、JSONのパターンについて説明します。
利用できるメトリクスはここに一覧があります。
使用可能な OS メトリクス

データ構造は実際のデータ見た方が早いと思います。
image.png

メトリクスの指定方法はjqコマンドと同じ感じ。
正規表現ではなく、ワイルドカードとして*が使えます。(他にもあるかも)

例として、Auroraのディスク使用率を取得するフィルターパターンはこんな感じでした。

"{ ($.instanceID = "dbname") && ($.instanceResourceID != "*-secondary") && ($.fileSys[0].usedPercent = *) }"

そして、メトリクス値に$.fileSys[0].usedPercentを指定すればディスク使用率を取得できました。

さいごに

記事書いてる最中に見つけたのですが、似たような公式の記事もありました。
拡張モニタリングの CloudWatch Logs をフィルタリングして、Amazon RDS のために自動化されたカスタムメトリクスを生成するにはどうすればよいですか?

若干手間ですが、目的は達成できました。
たくさん登録するならTerraformみたいなコード上でコピペが楽でした。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0