Por que meu alarme do CloudWatch está no estado INSUFFICIENT_DATA?

5 minuto de leitura
0

Meu alarme do Amazon CloudWatch está no estado INSUFFICIENT_DATA. Como posso descobrir o que está causando isso?

Breve descrição

O estado INSUFFICIENT_DATA pode indicar qualquer um dos seguintes:

  • Um alarme do Amazon CloudWatch acabou de disparar.
  • A métrica não está disponível.
  • Os parâmetros métricos, como namespace, nome da métrica ou dimensões, foram configurados incorretamente.
  • Não há dados suficientes para que a métrica determine o estado do alarme.

Quando o alarme estiver inesperadamente no estado INSUFFICIENT_DATA, revise as etapas de solução de problemas a seguir para ver algumas das causas mais comuns.

Resolução

Comportamento métrico normal

Quando você cria um alarme do CloudWatch, seu primeiro estado, por padrão, é INSUFFICIENT_DATA. Ele permanece nesse estado até concluir sua primeira avaliação da métrica que está sendo monitorada. Normalmente, um alarme sai de INSUFFICIENT_DATA alguns minutos após a criação.

Um alarme no estado INSUFFICIENT_DATA pode refletir o comportamento normal de uma métrica. Existem dois tipos de métricas com base na forma como elas são enviadas para o CloudWatch: orientadas por períodos e orientadas por eventos. Alguns serviços enviam pontos de dados periódicos para suas métricas em intervalos regulares. Outros serviços enviam dados métricos quando acionados por determinados eventos e podem ter períodos sem pontos de dados.

Um exemplo de métrica orientada por período é a métrica padrão de CPUUtilization de uma instância do Amazon Elastic Compute Cloud (Amazon EC2). Essa métrica tem um ponto de dados a cada cinco minutos. Mas, se você interromper a instância, o serviço não enviará nenhum ponto de dados para ela. Um exemplo de métrica orientada por eventos é a métrica HTTPCode_ELB_5XX_Count para um Application Load Balancer. O serviço Elastic Load Balancing (ELB) envia pontos de dados para essa métrica quando há uma resposta 5XX de um ELB. Se não houver erros de 5XX durante um período, o resultado será um período vazio (em vez de um valor zero).

Se um alarme estiver monitorando uma métrica que não tem pontos de dados durante um determinado conjunto de períodos e os dados ausentes estiverem sendo tratados como ausentes, o estado do alarme será INSUFFICIENT_DATA durante esses períodos. Para forçar o alarme a ficar nos estados ALARM ou OK, configure como o alarme trata esses períodos sem pontos de dados.

Configurações incorretas de alarme do CloudWatch

Cada métrica é definida por um namespace, um nome de métrica e até dez dimensões. Ao recuperar um ponto de dados, você deve especificar um carimbo de data/hora (e, opcionalmente, uma unidade). Se você fornecer um valor incorreto para um desses parâmetros, o CloudWatch tentará recuperar uma métrica que não existe. O resultado é um conjunto de dados vazio.

**Observação:**os pontos de dados geralmente são enviados para uma métrica com uma única unidade, mas você não precisa especificar a unidade ao criar um alarme. Se você não especificar uma unidade, não encontrará problemas relacionados a configurações incorretas da unidade. Mas, se os pontos de dados em sua métrica tiverem várias unidades, é uma prática recomendada usar a unidade correta.

Use a API DescribeAlarms para obter uma lista completa de parâmetros para suas métricas monitoradas. Compare isso com a saída ListMetrics. Verifique os parâmetros para:

  • Erros ortográficos e uso indevido de letras maiúsculas e minúsculas. Namespaces, nomes de métricas e chaves/valores de dimensão diferenciam maiúsculas de minúsculas.
  • Dimensões incorretamente especificadas ou ausentes.

Períodos de alarme configurados incorretamente

Configure um alarme para recuperar pontos de dados com a frequência desejada. Porém, você poderá obter estados indesejados se o alarme usar um período menor do que o período usado pelo serviço (ou fonte) para enviar os pontos de dados para a métrica. Para evitar estados INSUFFICIENT_DATA indesejados, é uma prática recomendada configurar o período do alarme para ser igual ou maior do que o período em que os pontos de dados da métrica são enviados. Use também as configurações M de N para o alarme.

Atraso na entrega de pontos de dados

Dependendo dos pontos de dados enviados ao CloudWatch, você poderá experimentar estados inesperados de INSUFFICIENT_DATA em um alarme que monitora uma métrica.

Por exemplo, você poderá ter um aplicativo personalizado que envia pontos de dados do software implantado em uma instância do EC2 para uma métrica personalizada. Para evitar a perda de dados, você poderá configurar o aplicativo para repetir as chamadas de API que falharam. Mas, devido a um fator externo (por exemplo, uma modificação das configurações da VPC), a instância perde a conectividade com o CloudWatch. Nesse cenário, seu ambiente ainda gera dados. No entanto, os pontos de dados enviados estão falhando até que o problema externo seja corrigido.

Se você configurou um alarme padrão, o alarme avalia a métrica a cada minuto. Durante a avaliação, o alarme obtém os últimos pontos de dados disponíveis da métrica configurada. Durante esse período sem conectividade, o alarme ainda está avaliando a métrica. Como os pontos de dados não estão sendo entregues com sucesso ao CloudWatch, o alarme não pode recuperar nenhum ponto de dados para esses períodos de avaliação. Isso aciona um estado INSUFFICIENT_DATA.

Depois de recuperar a conectividade, o aplicativo envia o backlog de pontos de dados, cada um com seu próprio timestamp. Como os pontos de dados são enviados após esse atraso, o alarme agora pode recuperar os pontos de dados recentes com base no período e no período de avaliação que você especificou nele. Nesse momento, você não vê mais espaços em branco na métrica, porque os pontos de dados agora estão armazenados no CloudWatch. Mas, como o alarme já avaliou esse período, o histórico do alarme ainda mostra uma mensagem semelhante a:

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

Se você não quiser que o alarme esteja no estado INSUFFICIENT_DATA, você poderá alterar a forma como o alarme trata os dados ausentes.


AWS OFICIAL
AWS OFICIALAtualizada há 2 anos