Amazon CloudWatchのSampleCountを確認してみる (自分メモ)

Amazon CloudWatchの統計データ、SampleCountがもやっとしているので、確認してみる

## 基本メトリクスで収集しているデータサンプル数は？

EC2のCPU負荷状況(CPUUtilization)のデータサンプル数(SampleCount)を確認
<div class="code-frame" data-lang="text"><div class="highlight"><pre>$ aws cloudwatch get-metric-statistics --metric-name "CPUUtilization"  --namespace "AWS/EC2" --statistics "SampleCount" --period 300 --start-time \`date -u -d "1 days ago" "+%Y-%m-%dT%H:%M:%SZ"\` --end-time \`date -u "+%Y-%m-%dT%H:%M:%SZ"\` --output table --dimensions Name=InstanceId,Value=i-XXXXXXXX</pre></div></div>

**結果：1分ごとにデータがCloudWatchにputされていた**
<div class="code-frame" data-lang="text"><div class="highlight"><pre>
+---------------+------------------------------------+
||                  Datapoints                      ||
|+--------------+------------------------+----------+|
||  SampleCount |       Timestamp        |  Unit    ||
|+--------------+------------------------+----------+|
||  5.0         |  2014-12-27T21:59:00Z  |  Percent ||
||  5.0         |  2014-12-27T22:04:00Z  |  Percent ||
||  5.0         |  2014-12-27T22:09:00Z  |  Percent ||
||  5.0         |  2014-12-27T22:14:00Z  |  Percent ||
||  5.0         |  2014-12-27T22:19:00Z  |  Percent ||
</pre></div></div>
その他：詳細メトリクス(1分間隔で統計情報が取得可能)を設定していてもいなくても、SampleCountは変わらない

## カスタムメトリクスで収集できるデータサンプル数は？

まずはサンプルデータ(今回はメモリ使用率を想定)をput
何度か以下を実行
<div class="code-frame" data-lang="text"><div class="highlight"><pre>
$ aws cloudwatch put-metric-data --metric-name "Memory Usage" --namespace "Custom" --timestamp \`date -u +%Y-%m-%dT%H:%M:%SZ\` --value \`free  | grep '^-' | tr -s ' ' | cut -d ' ' -f 4\`
</pre></div></div>
そしてデータをget
<div class="code-frame" data-lang="text"><div class="highlight"><pre>
$ aws cloudwatch get-metric-statistics --metric-name "Memory Usage" --namespace "Custom" --statistics "SampleCount" --period 60 --start-time \`date -u -d "1 days ago" "+%Y-%m-%dT%H:%M:%SZ"\` --end-time \`date -u "+%Y-%m-%dT%H:%M:%SZ"\` --output table</pre></div></div>
**結果：短い間隔（1分以内）のものも含め、データはすべてCloudWatchにputされていた**
<div class="code-frame" data-lang="text"><div class="highlight"><pre>
+----------------+--------------------------------+
||                  Datapoints                   ||
|+--------------+------------------------+-------+|
||  SampleCount |       Timestamp        | Unit  ||
|+--------------+------------------------+-------+|
||  2.0         |  2014-12-28T14:28:00Z  |  None ||
||  1.0         |  2014-12-28T14:24:00Z  |  None ||
||  4.0         |  2014-12-28T14:22:00Z  |  None ||
</pre></div></div>
その他：Averageは、ちゃんとputした分が足され、割り算されている
<div class="code-frame" data-lang="text"><div class="highlight"><pre>
$ aws cloudwatch get-metric-statistics --metric-name "Memory Usage" --namespace "Custom" --statistics "Average" --period 60 --start-time \`date -u -d "1 days ago" "+%Y-%m-%dT%H:%M:%SZ"\` --end-time \`date -u "+%Y-%m-%dT%H:%M:%SZ"\` --output table
結果一部省略
+---------------+------------------------------+
||                 Datapoints                 ||
|+-----------+------------------------+-------+|
||  Average  |       Timestamp        | Unit  ||
|+-----------+------------------------+-------+|
||  934584.0 |  2014-12-28T14:28:00Z  |  None ||
||  934616.0 |  2014-12-28T14:24:00Z  |  None ||
||  934595.0 |  2014-12-28T14:22:00Z  |  None ||
</pre></div></div>

もやっとしてたことが確かめられました！
CLIの詳細は[http://docs.aws.amazon.com/cli/latest/reference/cloudwatch/index.html](http://docs.aws.amazon.com/cli/latest/reference/cloudwatch/index.html)
以上