Cloudwatchのチュートリアルを読み解く


はじめに

DVAの試験範囲でもあるということで、今日はCloudwatchのチュートリアルをやってみました。

用語の解説

Cloudwatchを語る上で覚えておく必要のある用語をまとめます。

  • データポイント :

    • 個々のデータ(CPU使用率で言うと10%、20%のような具体的な値)
  • メトリクス :

    • データポイントを時系列順にまとめたセット
  • ネームスペース(名前空間) :

    • 発行されたメトリクスを格納するコンテナ(論理的な入れ物)
    • 任意の名前に設定可能(デフォルトのネームスペースは無し)
    • ただしAWSサービスのメトリクスではAWS/のネームスペースが使用される(例:AWS/EC2)
  • ディメンション :

    • メトリクスを一意に識別する名前と値のペア

ネームスペースとディメンションの使い分けがいつも混同するのですが、一番大きな枠がネームスペースで、その中から「どのサーバ(サービス)」を抽出するための検索ワードがディメンション、という理解です(ざっくり過ぎて間違っているかもしれませんが)

※Blackbeltの資料のイメージ図がわかりやすいです。

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