今回の目的
CloudWatchLogsからメトリクスフィルタ機能を使って、AuroraのメモリサイズをカスタムメトリクスとしてCloudWatchに表示させたいと思います。
作業の流れ
1. Auroraの拡張モニタリングの有効化
2. CloudWatchLogsにてメトリクスフィルタ作成
1. Auroraの拡張モニタリングの有効化
Auroraの拡張モニタリングの有効化はAWSマネジメントコンソール上で設定することが可能です。拡張モニタリングはインスタンス単位でオン/オフを設定できるので、インスタンスの設定で以下のようにチェックボックスをオンにしてください。
2. CloudWatchLogsにてメトリクスフィルタ作成
拡張モニタリングを有効化したら、CloudWatchLogsに「RDSOSMetrics」というロググループが存在していることが分かります。
ログの出力はJSON形式で、下記のようなフォーマットでAuroraのOS情報が出力されます。
"memory": {
"free": xxxxxxxxx,
"active": xxxxxxxxx,
"total": xxxxxxxxx,
"buffers": xxxxxxxxx
}
上記のOS情報をCloudWatchのカスタムメトリクスとして表示するため、ロググループにチェックを入れて、アクションから「メトリクスフィルターを作成」を選択します。
メトリクスフィルタでは、フィルタパターンを適切に設定することで、ログから抽出したい情報を設定することができます。詳細はCloudWatchのフィルタパターンの構文をご確認ください。
今回はJSON形式のフォーマットに対して、memoryのtotalを抽出したいので、{$.memory.total>0}とパターンを設定します。この設定で、totalが0以上のログだけが抽出されます(0以上ということは全部という意味ですが..)
メトリクス値では、フィルタに合致した文言からどの文字列を抽出するかを設定することができます。今回はmemoryのtotalを抽出したいので、$.memory.totalを設定します。
その他の設定はCloudWatchの名前空間などですが、CloudWatchの画面上の名称などなので、自分のお好みの設定にしてください。以上で設定は完了です。
設定が完了したら、CloudWatchのカスタムメトリクスが作成され、メトリクスの値が取得できていることを確認することができます。
感想
CloudWatchLogsのメトリクスフィルタを利用して、AuroraのOS情報を簡単にカスタムメトリクスとして表示する方法についてご紹介しました。
他のAWSサービスでも標準メトリクスとして欲しい情報がマッチしない場合もあると思います。そんな時に今回の方法を使うことで足りない部分を補うことができると思うので、ぜひ試してみてください。