スキップしてコンテンツを表示

CloudWatch メトリクスには GetMetricData または GetMetricStatistics のどちらを使用する方がよいか教えてください。

所要時間3分
0

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 で次のステップを実行します。

  1. 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 メトリクスを計算します。

  2. 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 を実行します。

  3. 次の 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 に設定されているため、m1m2 はレスポンスに含まれていません。

AWS公式更新しました 7ヶ月前
コメントはありません