AWS re:Post을(를) 사용하면 다음에 동의하게 됩니다. AWS re:Post 이용 약관

CloudWatch 지표에 대해 GetMetricData 또는 GetMetricStatistics를 사용하는 것이 더 낫습니까?

3분 분량
0

Amazon CloudWatch 지표에서 데이터 포인트를 검색하는 데 GetMetricData 또는 GetMetricStatistics API를 사용하는 것이 더 나은지 알고 싶습니다.

간략한 설명

GetMetricData는 대규모로 데이터를 더 빠르게 검색하기 때문에 GetMetricStatistics 대신 GetMetricData API를 사용하는 것이 가장 좋습니다. 또한 GetMetricData는 지표 수학을 지원하고 정렬된 페이지 매김 결과를 반환합니다. 최대 100만 개의 API 요청에 대해 CloudWatch의 GetMetricStatistics를 사용하는 데는 요금이 부과되지 않습니다. 하지만 CloudWatch에서 GetMetricData를 사용하는 데는 요금이 부과됩니다.

다음은 GetMetricData API에 대한 서비스 할당량입니다.

  • 50 TPS(초당 트랜잭션).
  • API 요청의 StartTime이 현재 시간으로부터 3시간 이하일 때 초당 180,000 데이터 포인트(DPS).
  • StartTime이 현재 시간으로부터 3시간 이상일 경우 396,000DPS.

해결 방법

참고: AWS Command Line Interface(AWS CLI) 명령 실행 시 오류가 발생하는 경우, AWS CLI 오류 문제 해결을 참고하세요. 또한 최신 AWS CLI 버전을 사용하고 있는지 확인하세요.

AWS CLI에서 GetMetricData API를 호출하려면 다음 단계를 완료합니다.

  1. GetMetricData API 호출에 대한 입력 파라미터를 생성합니다.
    호출 예시:

    $ 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
        }
    ]

    참고: 이전 호출에서 input 파라미터에는 InvocationsErrors 사용자 지정 지표가 있습니다. ErrorRate 지표는 다른 두 지표의 지표 수학으로 계산됩니다.

  2. 샘플 지표 데이터를 사용자 지정 지표로 게시하려면 PutMetricData를 사용합니다.
    호출 예시:

    $ 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개의 지표를 게시하려면 동일한 네임스페이스에서 단일 PutMetricData API 호출을 사용합니다. 동일한 네임스페이스에서 단일 PutMetricData API 직접 호출을 실행하려면 PutMetricData 호출에서 --metric-data 옵션을 사용합니다.

  3. 입력 파라미터와 함께 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
  4. 출력을 검토합니다.
    출력 예시:

    $ 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"
            }
        ]
    }

    참고: 앞의 예제 출력에서 5개의 데이터 포인트는 지표 수학을 사용하여 계산되고 시간 순서에 따른 결과로 반환됩니다. ReturnData가 false로 설정되어 있으므로 m1m2는 응답에 포함되지 않습니다.

관련 정보

get-metric-statistics

AWS 공식
AWS 공식업데이트됨 6달 전