사용자 지정 지표 게시 - Amazon CloudWatch

사용자 지정 지표 게시

AWS CLI 또는 API를 사용하여 CloudWatch에 자체 지표를 게시할 수 있습니다. AWS Management Console을 사용하여 게시된 지표의 통계 그래프를 볼 수 있습니다.

CloudWatch는 지표에 관한 데이터를 일련의 데이터 요소로 저장합니다. 각 데이터 요소에는 연결된 시간스탬프가 있습니다. 통계 세트라는 집계된 데이터 요소 세트를 게시할 수도 있습니다.

고분해능 지표

각 지표는 다음 중 하나입니다.

  • 표준 분해능 - 1분 세분화 데이터

  • 고분해능 - 1초 세분화 데이터

AWS 서비스에 의해 생성되는 지표는 기본적으로 표준 분해능입니다. 사용자 지정 지표를 게시할 때는 지표를 표준 분해능 또는 고분해능으로 정의할 수 있습니다. 고분해능 지표를 게시할 경우 CloudWatch는 이 지표를 1초 분해능으로 저장합니다. 그러면 사용자는 1초, 5초, 10초, 30초 또는 60초의 배수 기간으로 지표를 읽고 검색할 수 있습니다.

고분해능 지표는 애플리케이션의 단기(1분 미만) 활동을 보다 즉각적으로 관찰할 수 있게 해줍니다. 사용자 지정 지표에 대해 PutMetricData를 호출할 때마다 요금이 부과되며, 따라서 고분해능 지표에 대해 PutMetricData를 자주 호출할수록 요금이 증가할 수 있다는 점에 유의하세요. CloudWatch 요금에 대한 자세한 내용은 Amazon CloudWatch 요금을 참조하세요.

고분해능 지표에 대해 경보를 설정할 경우 고분해능 경보를 10초 또는 30초 기간으로 지정하거나 60초의 배수 기간으로 정기 경보를 설정할 수 있습니다. 10초 또는 30초 기간의 고분해능 경보는 요금이 더 비쌉니다.

측정기준 사용

사용자 지정 지표에서 --dimensions 파라미터는 공통입니다. 측정기준은 지표가 무엇이고 어떤 데이터가 저장되었는지 훨씬 명확하게 보여줍니다. 지표 하나에 측정기준을 최대 30개까지 가질 수 있으며, 각 측정기준은 이름-값 페어로 정의됩니다.

서로 다른 명령을 사용하면 측정기준을 지정하는 방법도 달라집니다. put-metric-data에서는 각 측정기준을 MyName=MyValue로 지정하고, get-metric-statistics 또는 put-metric-alarm에서는 Name=MyName, Value=MyValue 형식을 사용합니다. 예를 들어, 다음 명령은 이름이 BuffersInstanceId인 두 측정기준으로 InstanceType 지표를 게시합니다.

aws cloudwatch put-metric-data --metric-name Buffers --namespace MyNameSpace --unit Bytes --value 231434333 --dimensions InstanceId=1-23456789,InstanceType=m1.small

이 명령은 동일한 지표에 대한 통계를 검색합니다. 단일 측정기준의 Name 및 Value 부분은 쉼표로 구분하지만, 측정기준이 여러 개인 경우에는 하나의 측정기준과 그 다음 측정기준 사이에 공백을 둡니다.

aws cloudwatch get-metric-statistics --metric-name Buffers --namespace MyNameSpace --dimensions Name=InstanceId,Value=1-23456789 Name=InstanceType,Value=m1.small --start-time 2016-10-15T04:00:00Z --end-time 2016-10-19T07:00:00Z --statistics Average --period 60

단일 지표에 여러 개의 측정기준이 포함된 경우에는 get-metric-statistics를 사용할 때 정의된 모든 측정기준에 대해 값을 지정해야 합니다. 예를 들어 Amazon S3 지표 BucketSizeBytes에는 BucketNameStorageType 측정기준이 포함되어 있으므로 get-metric-statistics를 사용하여 두 측정기준을 모두 지정해야 합니다.

aws cloudwatch get-metric-statistics --metric-name BucketSizeBytes --start-time 2017-01-23T14:23:00Z --end-time 2017-01-26T19:30:00Z --period 3600 --namespace AWS/S3 --statistics Maximum --dimensions Name=BucketName,Value=MyBucketName Name=StorageType,Value=StandardStorage --output table

지표에 정의되는 측정기준을 확인하려면 list-metrics 명령을 사용합니다.

단일 데이터 포인트 게시

신규 또는 기존 지표에서 단일 데이터 요소를 게시하려면 하나의 값과 타임스탬프와 함께 put-metric-data 명령을 사용하세요. 예를 들어, 다음 각 작업은 데이터 요소 하나를 게시합니다.

aws cloudwatch put-metric-data --metric-name PageViewCount --namespace MyService --value 2 --timestamp 2016-10-20T12:00:00.000Z aws cloudwatch put-metric-data --metric-name PageViewCount --namespace MyService --value 4 --timestamp 2016-10-20T12:00:01.000Z aws cloudwatch put-metric-data --metric-name PageViewCount --namespace MyService --value 5 --timestamp 2016-10-20T12:00:02.000Z

새 지표 이름으로 이 명령을 호출하면 CloudWatch가 지표를 생성합니다. 그러지 않으면 CloudWatch는 지정된 기존의 지표에 데이터를 연결합니다.

참고

지표를 작성할 때 get-metric-statistics 명령을 사용하여 새 지표에 대한 통계를 검색할 수 있기까지 최대 2분이 소요될 수 있습니다. 그러나 list-metrics 명령을 사용하여 검색된 지표 목록에 새 지표가 나타나려면 최대 15분이 걸릴 수 있습니다.

타임스탬프가 1000분의 1초만큼 세분화된 데이터 요소를 게시할 수 있지만, CloudWatch는 1초의 최소 단위로 데이터를 집계합니다. CloudWatch는 각 기간 동안 수신된 값의 평균(모든 항목의 합계를 항목 수로 나눈 값)은 물론 동일한 기간의 샘플 수, 최댓값, 최솟값을 기록합니다. 예를 들어 이전 예의 PageViewCount 지표에는 타임스탬프가 몇 초 간격인 데이터 요소 3개가 들어 있습니다. 기간을 1분으로 설정한 경우 이러한 데이터 요소 모두에 1분 기간 내의 타임스탬프가 있기 때문에 CloudWatch는 3개의 데이터 요소를 집계합니다.

get-metric-statistics 명령을 사용하여 게시된 데이터 요소에 따라 통계를 검색할 수 있습니다.

aws cloudwatch get-metric-statistics --namespace MyService --metric-name PageViewCount \ --statistics "Sum" "Maximum" "Minimum" "Average" "SampleCount" \ --start-time 2016-10-20T12:00:00.000Z --end-time 2016-10-20T12:05:00.000Z --period 60

출력의 예제는 다음과 같습니다.

{ "Datapoints": [ { "SampleCount": 3.0, "Timestamp": "2016-10-20T12:00:00Z", "Average": 3.6666666666666665, "Maximum": 5.0, "Minimum": 2.0, "Sum": 11.0, "Unit": "None" } ], "Label": "PageViewCount" }

통계 세트 게시

CloudWatch에 게시하기 전에 데이터를 집계할 수 있습니다. 분당 여러 데이터 요소가 있는 경우 데이터를 집계하면 put-metric-data에 대한 호출 수가 최소화됩니다. 예를 들어, 서로 3초 내에 있는 데이터 요소 3개에 대해 put-metric-data를 여러 번 호출하는 대신 --statistic-values 파라미터를 사용하여 호출 한 번으로 게시한 통계 세트로 데이터를 집계할 수 있습니다.

aws cloudwatch put-metric-data --metric-name PageViewCount --namespace MyService --statistic-values Sum=11,Minimum=2,Maximum=5,SampleCount=3 --timestamp 2016-10-14T12:00:00.000Z

CloudWatch가 백분위수를 계산하려면 원시 데이터 요소가 필요합니다. 대신 통계 세트를 사용해 데이터를 게시하면 아래 조건 중 하나를 충족하기 전까지 이 데이터에 대한 백분위수 통계를 검색할 수 없습니다.

  • 통계 세트의 SampleCount는 1입니다.

  • 통계 세트의 MinimumMaximum이 동일합니다.

값 0 게시

데이터가 훨씬 산발적이고 연결된 데이터가 없는 기간이 있으면 해당 기간에 대해 0 값(0)을 게시하거나 값을 전혀 게시하지 않도록 선택할 수 있습니다. PutMetricData에 대한 정기적인 호출을 통해 애플리케이션의 상태를 모니터링하는 경우 값을 게시하지 않는 대신 0을 게시하려고 할 수 있습니다. 예를 들어 애플리케이션에서 지표를 게시하는 데 실패한 경우 5분마다 이를 알리도록 CloudWatch 경보를 설정할 수 있습니다. 애플리케이션에서 연결된 데이터가 없는 기간에 대해 0을 게시하도록 하려고 합니다.

또한 데이터 요소의 총 수를 추적하거나 최소값 또는 평균과 같은 통계에 값이 0인 데이터 요소를 포함하려는 경우 0을 게시할 수도 있습니다.

지표 게시 중지

CloudWatch에 사용자 지정 지표 게시를 중지하려면 PutMetricData 사용을 중지하도록 애플리케이션 또는 서비스의 코드를 변경합니다. CloudWatch는 애플리케이션에서 지표를 가져오지 않고 푸시된 내용만 수신하므로 지표 게시를 중지하려면 소스에서 지표를 중지해야 합니다.