【新機能】カスタムメトリクスとCloudWatchアラームが秒間隔で利用可能になりました!
ご機嫌いかがでしょうか、豊崎です。
CloudWatchの新機能が発表されました。
New – High-Resolution Custom Metrics and Alarms for Amazon CloudWatch
早速内容をご紹介したいと思います。
できるようになったこと
今回の新機能で、カスタムメトリクスを1秒間隔で利用できるようになりました。 また、10秒間隔で評価するCloudWatchアラームを設定することができるようになりました。
利用方法
利用する方法はAPIを利用する方法と、collectd pluginを利用する方法のの2種類があります。
APIでは、「PutMetricData」の「StorageResolution」パラメータを、1にして実行します。 http://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/APIReference/API_PutMetricData.html
collectd pluginでは、オープンソースのcollectedプラグインを利用します https://github.com/awslabs/collectd-cloudwatch
監視間隔とロールアップ
メトリクスは監視間隔によって、一定時間が経過すると閲覧できるメトリクスの解像度が減少します。間隔ごとに指定の粒度で保存ができる期間を定めて容量をセーブしているということですね。
監視間隔 | 経過時間 |
1秒 | 3時間 |
60秒 | 15日 |
5分 | 63日 |
1時間 | 455日 |
デモをやってみる
EC2は以下を使用しました。 EC2には「CloudWatchFullAccess」を許可したIAMロールを付与しています。
- amzn-ami-hvm-2017.03.1.20170623-x86_64-gp2 (ami-3bd3c45c)
$ sudo yum install collectd collectd-python $ wget https://raw.githubusercontent.com/awslabs/collectd-cloudwatch/master/src/setup.py $ chmod a+x setup.py $ sudo ./setup.py Installing dependencies ... OK Installing python dependencies ... OK Downloading plugin ... OK Extracting plugin ... OK Moving to collectd plugins directory ... OK Copying CloudWatch plugin include file ... OK Choose AWS region for published metrics: 1. Automatic [ap-northeast-1] 2. Custom Enter choice [1]: 1 Choose hostname for published metrics: 1. EC2 instance id [i-XXXXXXXXXXXXXXXX] 2. Custom Enter choice [1]: 1 Choose authentication method: 1. IAM Role [demo-HighResolutionCustomMetrics] 2. IAM User Enter choice [1]: 1 Enter proxy server name: 1. None 2. Custom Enter choice [1]: 1 Enter proxy server port: 1. None 2. Custom Enter choice [1]: 1 Include the Auto-Scaling Group name as a metric dimension: 1. No 2. Yes Enter choice [1]: 1 Include the FixedDimension as a metric dimension: 1. No 2. Yes Enter choice [1]: 1 Enable high resolution: 1. Yes 2. No Enter choice [2]: 1 Enter flush internal: 1. Default 60s 2. Custom Enter choice [1]: 2 Enter the customized flush interval ([1, 60] s): Enter choice [60]: 1 Choose how to install CloudWatch plugin in collectd: 1. Do not modify existing collectd configuration 2. Add plugin to the existing configuration 3. Use CloudWatch recommended configuration (4 metrics) Enter choice [3]: 3 Plugin configuration written successfully. Creating backup of the original configuration ... OK Replacing collectd configuration ... OK Replacing whitelist configuration ... OK
しばらくして、CloudWatchダッシュボードからメトリクスを確認してみるとメトリクスが3つ増えています。
- cpu使用率
- メモリ使用率
- ルートディスク
collectd-pluginsの設定ファイル的には以下に記述されていました。 (swapの指定もありますが、swapが設定されていなかったため、メトリクスとして表示されなかったものと思われます。)
$ cat /opt/collectd-plugins/cloudwatch/config/whitelist.conf df-root-percent_bytes-used memory--percent-used swap--percent-used cpu--percent-active
各メトリクスの間隔を1秒(10秒以下)に変更したところ、グラフでは10秒間隔で値が表示されました。1秒間隔のグラフは3時間前までしか取得できません。それ以前を確認したい場合は監視間隔を1分や5分などに戻せばOKです。
また、collectd pluginの/opt/collectd-plugins/cloudwatch/config/whitelist.confを変更することで 他の値も取得できます。詳しくは以下をご覧ください。
https://github.com/awslabs/collectd-cloudwatch
さいごに
監視間隔が短くなったことで、他のAWSサービスとの連携においても俊敏性を発揮するものと思われます。 もう少し詳しく触ってみようと思います。取り急ぎ簡単な利用方法をお伝えしました。誰かの役に当てば幸いです。