내용으로 건너뛰기

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

3분 분량
0

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

간략한 설명

GetMetricData는 대규모로 데이터를 더 빠르게 검색하기 때문에 GetMetricStatistics 대신 GetMetricData API 작업을 사용하는 것이 가장 좋습니다. GetMetricData는 지표 계산을 지원하고 정렬된 페이지 매김 결과를 반환합니다. 

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

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

참고: GetMetricData의 요금은 GetMetricStatistics 요금과 다릅니다. 자세한 내용을 보려면 Amazon CloudWatch 요금 페이지의 유료 등급 섹션에서 지표 탭을 선택하십시오.

해결 방법

참고: AWS Command Line Interface(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/> 이전 작업에서는 입력 파라미터에 InvocationsErrors 사용자 지정 지표가 있습니다. CloudWatch는 다른 두 지표의 지표 계산에 따라 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개의 지표를 게시하려면 동일한 네임스페이스에서 PutMetricData 작업 하나에 --metric-data 옵션을 추가한 다음 API를 실행합니다. 다음 get-metric-data AWS CLI 명령을 실행합니다.

    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 공식업데이트됨 8달 전