CloudWatch 경보가 INSUFFICIENT_DATA 상태인 이유는 무엇입니까?

최종 업데이트 날짜: 2020년 3월 26일

Amazon CloudWatch 경보가 INSUFFICIENT_DATA 상태입니다. 그 원인을 확인하려면 어떻게 해야 합니까?

해결 방법

INSUFFICIENT_DATA 상태는 다음을 나타낼 수 있습니다.

  • Amazon CloudWatch 경보가 방금 시작됨
  • 지표를 사용할 수 없음
  • 지표에 데이터가 부족하여 경보 상태를 확인할 수 없음

경보가 예기치 않게 INSUFFICIENT_DATA 상태인 경우 아래의 문제 해결 단계에서 가장 일반적인 몇 가지 원인을 검토합니다.

정상 지표 동작

INSUFFICIENT_DATA 상태의 경보는 단순히 지표의 정상 동작을 반영할 수 있습니다. CloudWatch로 푸시되는 방법에 따라 기간 중심 및 이벤트 중심의 두 가지 지표 유형이 있습니다. 일부 서비스는 지표에 주기적 데이터 포인트를 전송하지만, 특정 지표에는 데이터 포인트가 없는 기간이 있을 수 있습니다. 예를 들어, EC2 인스턴스의 CPUUtilization 지표에는 기간마다 데이터 포인트가 있습니다. 하지만 인스턴스를 중지하면 서비스가 인스턴스에 데이터 요소를 푸시하지 않습니다. 또 다른 예제로, Application Load Balancer의 HTTPCode_ELB_5XX_Count 지표가 있습니다. 서비스는 오류 또는 이벤트가 있을 때 데이터 포인트를 전송합니다. 일정 기간에 오류가 없으면 결과는 0의 값이 아니라, 빈 데이터 세트입니다.

경보가 의도적으로 지정된 기간에 데이터 포인트가 없는 지표를 모니터링하는 경우 경보 상태는 해당 기간에 INSUFFICIENT_DATA입니다. 경보를 강제로 경보 또는 정상 상태로 설정하려면 경보가 데이터 포인트 없이 이 기간을 처리하는 방법을 구성합니다.

잘못된 CloudWatch 경보 설정

각 지표는 네임스페이스, 이름 및 최대 10개의 차원으로 정의됩니다. 데이터 포인트를 검색할 때 타임스탬프 및 상황에 따라 단위를 지정해야 합니다. 이러한 파라미터 중 하나에 잘못된 값을 제공하면 CloudWatch가 존재하지 않는 지표를 검색하려고 시도합니다. 결과는 빈 데이터 세트입니다.

참고: 데이터 포인트는 보통 하나의 단위로 지표에 푸시되지만, 경보를 생성할 때 단위를 지정할 필요는 없습니다. 단위를 지정하지 않으면 잘못된 단위 구성과 관련된 문제가 발생하지 않습니다. 하지만 지표에서 데이터 포인트의 단위가 여러 개인 경우 올바른 단위를 사용하는 것이 좋습니다.

DescribeAlarms API를 사용하여 모니터링하는 지표에 대한 전체 파라미터 목록을 가져옵니다. 이를 ListMetrics 출력과 비교할 수 있습니다. 다음에 대한 파라미터를 확인합니다.

  • 철자 오류 및 대문자 및 소문자의 부적절한 사용(지표는 대소문자를 구분함)
  • 잘못 지정된 차원 또는 단위

잘못 구성된 경보 기간

원하는 빈도로 데이터 포인트를 검색하도록 경보를 구성할 수 있습니다. 하지만 경보가 사용하는 기간이 서비스 또는 소스에서 데이터 포인트를 지표로 전송하는 데 사용한 기간보다 짧은 경우 원치 않는 상태가 발생할 수 있습니다. 원치 않는 INSUFFICIENT_DATA 상태를 방지하려면 지표의 데이터 포인트가 푸시되는 기간과 동일하게 경보 기간을 구성하는 것이 좋습니다. 경보에 대해 [N 중에서 M] 설정을 사용할 수도 있습니다.

데이터 포인트의 지연된 전송

CloudWatch로 전송되는 데이터 포인트에 따라 지표를 모니터링하는 경보에서 예기치 않은 INSUFFICIENT_DATA 상태가 발생할 수 있습니다.

예를 들어, EC2 인스턴스에 배포된 소프트웨어에서 사용자 지정 지표로 데이터 포인트를 전송하는 사용자 지정 애플리케이션이 있습니다. 데이터 손실을 방지하려면 실패한 API 호출을 재시도하도록 애플리케이션을 구성합니다. 외부 요소(예: VPC 설정 수정)로 인해 인스턴스는 CloudWatch와의 연결이 끊어집니다. 이 시나리오에서는 사용자 환경에서 계속 데이터를 생성하지만, 전송 중인 데이터 포인트에서는 장애가 발생합니다.

표준 경보를 설정한 경우 경보는 1분마다 지표를 평가합니다. 평가 중에 경보는 구성된 지표에서 최신 데이터 포인트를 검색합니다. 연결되지 않은 이 기간에도 경보는 계속 지표를 평가합니다. 데이터 포인트가 전송되지 않기 때문에 경보는 해당 평가 기간에 대한 데이터 포인트를 검색할 수 없으므로 INSUFFICIENT_DATA 상태가 트리거됩니다.

연결을 복구한 후 애플리케이션은 각각 타임스탬프를 포함하는 데이터 포인트의 백로그를 전송합니다. 이 지연 이후 데이터 포인트가 전송되므로 이제 경보는 사용자가 지정한 기간 및 평가 기간에 따라 최근 데이터 포인트를 검색할 수 있으며, 다시 예상대로 작동합니다. 이 시점에서는 이제 데이터 포인트가 CloudWatch에 저장되므로 더 이상 지표에 공백이 표시되지 않습니다. 하지만 경보는 이미 해당 기간을 평가했으므로 경보 내역에 다음과 비슷한 메시지가 표시됩니다.

   [...] 
   "stateValue": "INSUFFICIENT_DATA",
   "stateReason": "Insufficient Data: 2 datapoints were unknown.",
   [...]

경보가 INSUFFICIENT_DATA 상태가 되지 않도록 하려면 경보가 누락된 데이터를 처리하는 방법을 변경할 수 있습니다.


이 문서가 도움이 되었습니까?

AWS에서 개선해야 할 부분이 있습니까?


도움이 필요하십니까?