CloudWatch 지표에 대해 GetMetricData 또는 GetMetricStatistics를 사용하는 것이 더 낫습니까?
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에서 다음 단계를 완료하십시오.
-
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/> 이전 작업에서는 입력 파라미터에 Invocations 및 Errors 사용자 지정 지표가 있습니다. 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로 설정되어 있으므로 m1 및 m2는 응답에 포함되지 않습니다.
- 언어
- 한국어
