CloudWatch メトリクスには GetMetricData または GetMetricStatistics のどちらを使用する方がよいか教えてください。
Amazon CloudWatch メトリクスからデータポイントを取得するには、GetMetricData または GetMetricStatistics API オペレーションのどちらを使用する方がよいかを知りたいです。
簡単な説明
GetMetricData を使用すると、データをより高速かつ大規模に取得できるため、GetMetricStatistics ではなく **GetMetricData **API オペレーションを使用するのがベストプラクティスです。GetMetricData は、メトリクス計算をサポートしており、順序付けされページ分割された結果を返します。
GetMetricData API オペレーションのサービスクォータは次のとおりです。
- 1 秒あたり 50 件のトランザクション (TPS)。
- 1 秒あたり 180,000 個のデータポイント (DPS) (API リクエストの StartTime が現在時刻から 3 時間以内の場合)。
- StartTime が現在時刻から 3 時間超後の場合は 396,000 DPS。
注: GetMetricData の料金は GetMetricStatistics の料金とは異なります。詳細については、Amazon CloudWatch 料金ページの「有料利用枠」セクションにある「メトリクス」タブを選択してください。
解決策
注: AWS コマンドラインインターフェイス (AWS CLI) コマンドの実行中にエラーが発生した場合は、「AWS CLI で発生したエラーのトラブルシューティング」を参照してください。また、AWS CLI の最新バージョンを使用していることを確認してください。
**GetMetricData ** API オペレーションを使用してデータポイントを取得するには、AWS CLI で次のステップを実行します。
-
GetMetricData API オペレーション用の入力パラメーターを作成します。<br id=hardline_break/> オペレーション例:
cat metric-data-queries.json[ { "Id": "e1", "Expression": "m1 / m2", "Label": "ErrorRate" }, { "Id": "m1", "MetricStat": { "Metric": { "Namespace": "MyApplication", "MetricName": "Errors", "Dimensions": [ { "Name": "FunctionName", "Value": "MyFunc" } ] }, "Period": 300, "Stat": "Sum", "Unit": "Count" }, "ReturnData": false }, { "Id": "m2", "MetricStat": { "Metric": { "Namespace": "MyApplication", "MetricName": "Invocations", "Dimensions": [ { "Name": "FunctionName", "Value": "MyFunc" } ] }, "Period": 300, "Stat": "Sum", "Unit": "Count" }, "ReturnData": false } ]注: MyApplication はご使用のアプリケーション名に置き換えてください。<br id=hardline_break/> 前のオペレーションでは、入力パラメーターに [呼び出し数] と [エラー] のカスタムメトリクスがあります。CloudWatch は、他の 2 つのメトリクスのメトリクス計算によって ErrorRate メトリクスを計算します。
-
PutMetricData を使用してサンプルのメトリクスデータをカスタムメトリクスとして公開します。<br id=hardline_break/> オペレーション例:
aws cloudwatch put-metric-data --namespace MyApplication --metric-name Invocations --dimensions FunctionName=MyFunc --value 10 --unit Count --timestamp 2018-06-19T04:00:00Z$ aws cloudwatch put-metric-data --namespace MyApplication --metric-name Invocations --dimensions FunctionName=MyFunc --value 10 --unit Count --timestamp 2018-06-19T04:05:00Z aws cloudwatch put-metric-data --namespace MyApplication --metric-name Invocations --dimensions FunctionName=MyFunc --value 10 --unit Count --timestamp 2018-06-19T04:10:00Z aws cloudwatch put-metric-data --namespace MyApplication --metric-name Invocations --dimensions FunctionName=MyFunc --value 10 --unit Count --timestamp 2018-06-19T04:15:00Z aws cloudwatch put-metric-data --namespace MyApplication --metric-name Invocations --dimensions FunctionName=MyFunc --value 10 --unit Count --timestamp 2018-06-19T04:20:00Z aws cloudwatch put-metric-data --namespace MyApplication --metric-name Errors --dimensions FunctionName=MyFunc --value 3 --unit Count --timestamp 2018-06-19T04:00:00Z aws cloudwatch put-metric-data --namespace MyApplication --metric-name Errors --dimensions FunctionName=MyFunc --value 6 --unit Count --timestamp 2018-06-19T04:05:00Z aws cloudwatch put-metric-data --namespace MyApplication --metric-name Errors --dimensions FunctionName=MyFunc --value 2 --unit Count --timestamp 2018-06-19T04:10:00Z aws cloudwatch put-metric-data --namespace MyApplication --metric-name Errors --dimensions FunctionName=MyFunc --value 9 --unit Count --timestamp 2018-06-19T04:15:00Z aws cloudwatch put-metric-data --namespace MyApplication --metric-name Errors --dimensions FunctionName=MyFunc --value 1 --unit Count --timestamp 2018-06-19T04:20:00Z注: 最大 20 個のメトリクスを公開するには、同じ名前空間の 1 つの PutMetricData オペレーションに --metric-data オプションを追加して、API を実行します。
-
次の AWS CLI コマンド get-metric-data を実行します。
aws cloudwatch get-metric-data --metric-data-queries file://./metric-data-queries.json --start-time 2018-06-19T04:00:00Z --end-time 2018-06-19T04:30:00Z注: //./metric-data-queries.json をご使用の JSON ファイルに、2018-06-19T04:00:00Z を実際の開始時間に、2018-06-19T04:30:00Z を実際の終了時間に置き換えてください。<br id=hardline_break/> 出力例:
aws cloudwatch get-metric-data --metric-data-queries file://./metric-data-queries.json --start-time 2018-06-19T04:00:00Z --end-time 2018-06-19T04:30:00Z{ "MetricDataResults": [ { "Timestamps": [ "2018-06-19T04:20:00Z", "2018-06-19T04:15:00Z", "2018-06-19T04:10:00Z", "2018-06-19T04:05:00Z", "2018-06-19T04:00:00Z" ], "StatusCode": "Complete", "Values": [ 0.1, 0.9, 0.2, 0.6, 0.3 ], "Id": "e1", "Label": "ErrorRate" } ] }注: 前述の出力例では、CloudWatch はメトリクスの計算を使用して 5 つのデータポイントを計算し、それらを時系列の結果として返します。ReturnData は false に設定されているため、m1 と m2 はレスポンスに含まれていません。
- 言語
- 日本語
