CloudWatch の GetMetricStatistics API 呼び出しがデータポイントを返さないのはなぜですか?

所要時間1分
0

Amazon CloudWatch の「GetMetricStatistics」API 呼び出しでデータポイントが返されません。ただし、データポイントは CloudWatch コンソールで使用できます。

解決方法

注: AWS コマンドラインインターフェイス (AWS CLI) コマンドの実行中にエラーが発生した場合は、AWS CLI の最新バージョンを使用していることを確認してください

CloudWatch はリージョンレベルのサービスであるため、API 呼び出しで正しい AWS リージョンが使用されていることを確認してください。CloudWatch は、複数の引数を指定して GetMetricStatistics API 呼び出しを発行します。これらの引数はメトリクスのプロパティと一致する必要があります。これらの引数では大文字と小文字が区別されるため、CloudWatch コンソール設定では、大文字であるか小文字であるかを含めて名前が一致していることを必ず確認してください。エラーは、ほとんどの場合、引数が正しくないことが原因で発生します。

ディメンション

メトリクスが複数のディメンションで作成されている場合、設定されているすべてのディメンションを指定した場合にのみ、そのメトリクスのデータポイントを取得できます。例えば、次のプロパティを持つ DataCenterMetric 名前空間で ServerStats という名前のメトリクスを発行するとします。

Dimensions: Server=Prod, Domain=Frankfurt, Unit: Count, Timestamp: 2016-10-31T12:30:00Z, Value: 105

このメトリクスのデータポイントを取得するには、次のディメンションを指定します。

Server=Prod,Domain=Frankfurt

ただし、2 つのディメンションのうちの 1 つだけを指定した場合には、データポイントを取得できません。以下の例を参照してください。

Server=Prod

AWS CLI を使用して、get-metric-statistics コマンドでディメンションを指定する形式は、put-metric-data コマンドの形式と異なります。次の形式と類似する形式を使用してください:

"Name"=string, "Value"=string

注: この場合、Name=Value という形式は正しくありません。

次の get-metric-statistics 呼び出しの例を参照してください。

aws cloudwatch get-metric-statistics --metric-name "MyMetric" --start-time 2018-04-08T23:18:00Z --end-time 2018-04-09T23:18:00Z --period 3600 --namespace "MyNamespace" --statistics Maximum --dimensions Name=Server,Value=Prod

次の put-metric-data 呼び出しの例を参照してください。

aws cloudwatch put-metric-data --namespace "MyNamespace" --metric-name "MyMetric" --dimensions Server=Prod --value 10

期間

指定した間隔の値に対してこのメトリクスがプッシュされない場合、データポイントは返されません。

例えば、インスタンスの基本モニタリングをアクティブ化すると、Amazon Elastic Compute Cloud (Amazon EC2) は 5 分ごとにデータポイントをプッシュします。例えば、Amazon EC2 は 12:00、12:05、12:10 などのタイムスタンプにデータポイントをプッシュするとします。開始時刻と終了時刻が 12:01 と 12:04 で、60 秒間隔でデータポイントの取得を試みます。この場合、データポイントは表示されません。開始時刻と終了時刻を、メトリクスによって提供される最小粒度を超えて延長することがベストプラクティスです。(このユースケースでは、粒度は 5 分です)。 または、メトリクスによって提供される最小粒度以上の期間を使用します。

統計

メトリクスに対するパーセンタイル統計を取得するためには、ExtendedStatistic を使用してください。

CloudWatch は raw データポイントを使用して、パーセンタイルを計算します。統計セットを使用してデータを発行する場合は、次の条件のいずれかが true である場合に、このデータのパーセンタイル統計を取得することができます。

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

単位

  • 指定された単位がメトリクスに対して設定されたものと異なる場合、データポイントは返されません。
  • 単位の引数を指定しない場合、すべての単位のデータポイントが返されます。

開始時間と終了時間

  • 開始時間と終了時間引数の形式を GetMetricStatistics 文書の指定に従って設定します。
  • 開始時刻と終了時刻の間のメトリクスにデータポイントがプッシュされない場合、データポイントは返されません。

注: 24 時間以上前のタイムスタンプを持つデータポイントは、get-metric-statistics で利用可能になるまで 48 時間以上かかることがあります。詳細については、「put-metric-data」を参照してください。


関連情報

CloudWatch メトリクスを発行する AWS のサービス

AWS公式
AWS公式更新しました 1年前