はじめに
DVAの試験範囲でもあるということで、今日はCloudwatchのチュートリアルをやってみました。
用語の解説
Cloudwatchを語る上で覚えておく必要のある用語をまとめます。
-
データポイント :
- 個々のデータ(CPU使用率で言うと10%、20%のような具体的な値)
-
メトリクス :
- データポイントを時系列順にまとめたセット
-
ネームスペース(名前空間) :
- 発行されたメトリクスを格納するコンテナ(論理的な入れ物)
- 任意の名前に設定可能(デフォルトのネームスペースは無し)
- ただしAWSサービスのメトリクスではAWS/のネームスペースが使用される(例:AWS/EC2)
-
ディメンション :
- メトリクスを一意に識別する名前と値のペア
ネームスペースとディメンションの使い分けがいつも混同するのですが、一番大きな枠がネームスペースで、その中から「どのサーバ(サービス)」を抽出するための検索ワードがディメンション、という理解です(ざっくり過ぎて間違っているかもしれませんが)
1.データ構成定義
※手順ではないので省略
2.CloudWatch にメトリクスを追加
AWS CLIのput-metric-dataコマンドを使用し、Cloudwatchに向けてデータポイントを発行します。
今回はメトリック名をRequestLatency、ネームスペース名をGetStartedと定義しています。
aws cloudwatch put-metric-data --metric-name RequestLatency --namespace GetStarted \
--timestamp 2016-10-14T20:30:00Z --value 87 --unit Milliseconds
aws cloudwatch put-metric-data --metric-name RequestLatency --namespace GetStarted \
--timestamp 2016-10-14T20:30:00Z --value 51 --unit Milliseconds
aws cloudwatch put-metric-data --metric-name RequestLatency --namespace GetStarted \
--timestamp 2016-10-14T20:30:00Z --value 125 --unit Milliseconds
aws cloudwatch put-metric-data --metric-name RequestLatency --namespace GetStarted \
--timestamp 2016-10-14T20:30:00Z --value 235 --unit Milliseconds
aws cloudwatch put-metric-data --metric-name RequestLatency --namespace GetStarted \
--timestamp 2016-10-14T21:30:00Z --statistic-values Sum=577,Minimum=65,Maximum=189,SampleCount=5 --unit Milliseconds
aws cloudwatch put-metric-data --metric-name RequestLatency --namespace GetStarted \
--statistic-values Sum=806,Minimum=47,Maximum=328,SampleCount=6 --unit Milliseconds
補足
Cloudwatchは2週間前までのデータしか参照できないようで、チュートリアルのコマンドをそのまま実行するとエラーになります。
An error occurred (InvalidParameterValue) when calling the PutMetricData operation: The parameter MetricData.member.1.Timestamp must specify a time within the past two weeks.
また、このチュートリアルは3つ目が現在時刻であることを想定しているようなので、1つ目、2つ目のタイムスタンプを「現在時刻-2時間(1時間)」で発行するか、3つ目に--timestampオプションを追加して実行しましょう。
--metric-name
- 書式 : --metric-name
(value)
発行するメトリクスの名前。
--namespace
- 書式 : --namespace
(value)
メトリクスのネームスペース名。
--timestamp
- 書式 : --timestamp
(value)
メトリクスに使用されるタイムスタンプ。
(タイムスタンプはISO 8601 UTC形式(2016-10-03T23:00:00Zなど)で指定)
指定しない場合、デフォルト値はメトリクスデータが受信された時間。
--value
- 書式 : --value
(value)
メトリクスの値。
--unit
- 書式 : --unit
(value)
メトリクスの単位。
3.CloudWatchから統計を取得
2で発行したメトリクスデータの統計を取得します。
aws cloudwatch get-metric-statistics --namespace GetStarted --metric-name RequestLatency --statistics Average \
--start-time 2016-10-14T00:00:00Z --end-time 2016-10-15T00:00:00Z --period 60
--start-time / --end-time
- 書式 : --start-time
(value)
/ --end-time(value)
集計するデータポイントの開始時間と終了時間。
--period
- 書式 : --period
(value)
集計時のデータポイントの粒度(秒単位)
通常メトリックは1分(60秒)の単位で、高解像度メトリックの場合は1、5 、10、30秒もそれぞれ指定可能。
4.グラフを表示
あとはグラフを表示させるだけ、と思いましたが手順通りやっても表示されませんでした。
おそらく何かがおかしかったのだと思いますが、ちょっと時間が無いので今日はここまで(宿題)
参考URL