Amazon CloudWatch
ユーザーガイド

カスタムメトリクスをパブリッシュする

AWS CLI または API を使用して、独自のメトリクスを CloudWatch にパブリッシュできます。AWS マネジメントコンソール でパブリッシュしたメトリクスの統計グラフを表示できます。

CloudWatch は、一連のデータポイントとしてメトリクスに関するデータを格納します。各データポイントには関連するタイムスタンプがあります。さらに、統計セットという集約されたデータポイント一式をパブリッシュすることもできます。

高解像度のメトリクス

各メトリクスは次のいずれかです。

  • 詳細度が 1 分のデータを含む、標準の解像度

  • 詳細度が 1 秒のデータを含む高解像度

AWS のサービスによって生成されたメトリクスは、デフォルトで標準解像度になります。カスタムメトリクスを発行するときは、標準解像度または高解像度のいずれかとして定義できます。高解像度メトリクスを発行すると、CloudWatch は 1 秒の解像度でそのメトリクスを保存します。メトリクスは 1 秒、5 秒、10 秒、30 秒、または 60 秒の倍数の期間で読み取りおよび取得できます。

高解像度メトリクスを使用すれば、アプリケーションの 1 分未満のアクティビティをより迅速に把握できます。PutMetricData がカスタムメトリクスを呼び出す場合、課金されることに注意してください。そのため、高解像度で PutMetricData を頻繁に呼び出すと、高額な料金が発生する可能性があります。CloudWatch の料金の詳細については、「Amazon CloudWatch 料金表」を参照してください。

高解像度メトリクスでアラームを設定する場合、10 秒または 30 秒の期間で高解像度アラームを指定するか、60 秒の倍数の期間で通常のアラームを設定できます。10 秒または 30 秒の期間の高解像度アラームでは、料金が高くなります。

ディメンションを使用する

カスタムメトリクスでは、--dimensions パラメーターは一般的です。ディメンションでは、これに加えて、メトリクスの内容やメトリクスによって保存されるデータまで分かります。1 つのメトリクスには最大 10 個のディメンションを指定することができ、各ディメンションは名前と値のペアで定義されます。

使用するコマンドが異なる場合は、使用するディメンションも異なります。put-metric-data を使用する場合は、各ディメンションを MyName=MyValue と指定しますが、get-metric-statistics または put-metric-alarm を使用する場合は、Name=MyNameValue=MyValue を使用します。たとえば、次のコマンドでは、「InstanceId」と「InstanceType」という名前の 2 つのディメンションを持つ「Buffers」メトリクスをパブリッシュします。

aws cloudwatch put-metric-data --metric-name Buffers --namespace MyNameSpace --unit Bytes --value 231434333 --dimensions InstanceId=1-23456789,InstanceType=m1.small

このコマンドは、同一メトリクスの統計情報を取得します。ディメンションが 1 つの場合は、名前と値をカンマで区切り、複数ある場合は、1 つめのディメンションと 2 つめのディメンションの間にスペースを使用します。

aws cloudwatch get-metric-statistics --metric-name Buffers --namespace MyNameSpace --dimensions Name=InstanceId,Value=1-23456789 Name=InstanceType,Value=m1.small --start-time 2016-10-15T04:00:00Z --end-time 2016-10-19T07:00:00Z --statistics Average --period 60

また、1 つのメトリクスに複数のディメンションを含む場合は、get-metric-statistics を使用するときに、定義されているディメンションごとに値を指定する必要があります。たとえば、Amazon S3 メトリクス BucketSizeBytes に、BucketNameStorageType の 2 つのディメンションが含まれている場合は、get-metric-statistics を使用して両方のディメンションを指定する必要があります。

aws cloudwatch get-metric-statistics --metric-name BucketSizeBytes --start-time 2017-01-23T14:23:00Z --end-time 2017-01-26T19:30:00Z --period 3600 --namespace AWS/S3 --statistics Maximum --dimensions Name=BucketName,Value=MyBucketName Name=StorageType,Value=StandardStorage --output table

メトリクスに定義されているディメンションを確認するには、list-metrics コマンドを使用します。

単一データポイントをパブリッシュする

新規または既存のメトリクスに単一のデータポイントを発行するには、1 つの値とタイムスタンプで put-metric-data コマンドを呼び出します。たとえば、次のアクションはそれぞれ 1 つのデータポイントをパブリッシュしています。

aws cloudwatch put-metric-data --metric-name PageViewCount --namespace MyService --value 2 --timestamp 2016-10-20T12:00:00.000Z aws cloudwatch put-metric-data --metric-name PageViewCount --namespace MyService --value 4 --timestamp 2016-10-20T12:00:01.000Z aws cloudwatch put-metric-data --metric-name PageViewCount --namespace MyService --value 5 --timestamp 2016-10-20T12:00:02.000Z

新しいメトリクス名でこのコマンドを呼び出すと、CloudWatch がメトリクスを作成します。そうでない場合、CloudWatch は指定された既存のメトリクスとデータを関連付けます。

注記

メトリクスを作成したら、get-metric-statistics コマンドを用いてその新規メトリクスの統計を取得できるようになるまで最大 2 分かかります。ただし、list-metrics コマンドを用いて取得したメトリクスのリストに新規メトリクスが表示されるまでは最大 15 分かかることがあります。

粒度が 1 秒の 1,000 分の 1 のタイムスタンプでデータポイントをパブリッシュできますが、CloudWatch は、データを最小粒度の 1 分に集約します。CloudWatch は 1 分の期間ごとに受け取った値の平均 (すべての項目の合計を項目数で割った値) と、同じ期間内のサンプル数、最大値、最小値を記録します。たとえば、前の例の PageViewCount メトリクスには、3 つのデータポイントで、数秒違いのタイムスタンプがあります。3 つのデータポイントはタイムスタンプがすべて 1 分の期間内にあるため、CloudWatch はそれらを集約します。

CloudWatch は、データポイントを集約する際、1 分の境界を使用します。たとえば、2016-10-20T12:00:00.000Z で始まり 2016-10-20T12:01:00.000Z で終わる 1 分の期間内に 3 つのデータポイントがすべて収まるため、CloudWatch は前の例のデータポイントを集約します。

パブリッシュしたデータポイントを基に、get-metric-statistics コマンドを用いて統計を取得できます。

aws cloudwatch get-metric-statistics --namespace MyService --metric-name PageViewCount \ --statistics "Sum" "Maximum" "Minimum" "Average" "SampleCount" \ --start-time 2016-10-20T12:00:00.000Z --end-time 2016-10-20T12:05:00.000Z --period 60

出力例を次に示します。

{ "Datapoints": [ { "SampleCount": 3.0, "Timestamp": "2016-10-20T12:00:00Z", "Average": 3.6666666666666665, "Maximum": 5.0, "Minimum": 2.0, "Sum": 11.0, "Unit": "None" } ], "Label": "PageViewCount" }

統計セットをパブリッシュする

さらに、CloudWatch にパブリッシュする前にデータを集約することができます。各分に複数のデータポイントがある場合、データを集約して put-metric-data への呼び出し回数を最小化できます。たとえば、互いに 3 秒以内の位置にある 3 つのデータポイントに対して put-metric-data を複数回呼び出す代わりに、--statistic-values パラメータを使用して、1 回の呼び出しでパブリッシュできる統計セットにデータを集約できます。

aws cloudwatch put-metric-data --metric-name PageViewCount --namespace MyService --statistic-values Sum=11,Minimum=2,Maximum=5,SampleCount=3 --timestamp 2016-10-14T12:00:00.000Z

CloudWatch は、raw データポイントを使用してパーセンタイルを計算します。統計セットを使用してデータをパブリッシュする場合は、以下の条件のいずれかが真である場合を除き、このデータのパーセンタイル統計を取得することはできません。

  • 統計セットの SampleCount が 1。

  • 統計セットの最小値と最大値が同一である。

値ゼロ(0)をパブリッシュする

データが散発的で、関連データがない期間がある場合、その期間に対して値ゼロ 0 をパブリッシュするか、全く値なしにするかを選択できます。アプリケーションの状態をモニタリングするために PutMetricData を周期的に呼び出す場合、値なしにするのではなく、値ゼロ (0) をパブリッシュすることができます。たとえば、アプリケーションが 5 分ごとにメトリクスをパブリッシュできない場合、CloudWatch アラームを設定できます。そのようなアプリケーションに関連データがない期間ではゼロ(0)をパブリッシュさせることができます。

また、データポイントの総数を追跡する場合、または最小値や平均値などの統計に値 0 のデータポイントを含める場合も 0 をパブリッシュすることがあります。