Pourquoi l'alarme CloudWatch affiche-t-elle l'état INSUFFICIENT_DATA ?

Lecture de 6 minute(s)
0

L'alarme Amazon CloudWatch affiche l'état INSUFFICIENT_DATA. Comment découvrir l'origine du problème ?

Brève description

L'état INSUFFICIENT_DATA peut indiquer l'un des éléments suivants :

  • Une alarme Amazon CloudWatch vient juste de démarrer.
  • La métrique n'est pas disponible.
  • Les paramètres de métrique, tels que l'espace de noms, le nom de la métrique ou les dimensions, ont été mal configurés.
  • Il n’y a pas assez de données pour que la métrique puisse déterminer l'état de l'alarme.

Lorsque votre alarme se trouve dans l'état INSUFFICIENT_DATA de manière inattendue, passez en revue les étapes de dépannage ci-dessous pour rechercher certaines des causes les plus courantes.

Résolution

Comportement de métrique normal

Lorsque vous créez une alarme CloudWatch, son premier état par défaut est INSUFFICIENT_DATA. Elle reste dans cet état jusqu'à ce qu'elle ait terminé sa première évaluation de la métrique qu’elle surveille. En règle générale, une alarme sort de l’état INSUFFICIENT_DATA quelques minutes après sa création.

Une alarme affichant l'état INSUFFICIENT_DATA peut refléter le comportement normal d'une métrique. Il existe deux types de métriques en fonction de la façon dont elles sont transmises à CloudWatch : celles basées sur la période et celles basées sur les événements. Certains services envoient des points de données périodiques à leurs métriques à intervalles réguliers. D'autres services transmettent des données de métrique lorsqu'ils sont déclenchés par certains événements et peuvent avoir des périodes sans points de données.

La métrique par défaut CPUUtilization d'une instance Amazon Elastic Compute Cloud (Amazon EC2) est un exemple de mesure basée sur la période. Cette métrique a un point de données toutes les cinq minutes. Cependant, si vous arrêtez l'instance, le service ne transmet aucun point de données vers cette dernière. La métriqueHTTPCode_ELB_5XX_Count pour un Application Load Balancer est un exemple de métrique pilotée par les événements. Le service Elastic Load Balancing (ELB) (répartition de charge Elastic) envoie des points de données à cette métrique lorsqu'il y a une réponse 5XX d'un ELB. S'il n'y a pas d'erreur 5XX au cours d'une période, le résultat est une période vide (plutôt qu’une valeur nulle).

Si une alarme surveille une métrique qui n'a aucun point de données pendant un ensemble donné de périodes, et que les données manquantes sont traitées comme manquantes, l'état de l'alarme sera alors INSUFFICIENT_DATA pendant ces périodes. Pour forcer l'alarme à être dans l'état ALARM ou OK, configurez la façon dont l'alarme traite les périodes sans points de données.

Paramètres d'alarme CloudWatch incorrects

Chaque métrique est définie par un espace de noms, un nom de la métrique et jusqu'à dix dimensions. Lors de la récupération d'un point de données, vous devez spécifier un horodatage (et éventuellement une unité). Si vous fournissez une valeur incorrecte pour l'un de ces paramètres, CloudWatch tentera de récupérer une métrique qui n'existe pas. Le résultat est un ensemble de données vide.

Remarque : les points de données sont généralement transmis à une métrique avec une seule unité, mais vous n'êtes pas obligé de spécifier l'unité lors de la création d'une alarme. Si vous ne spécifiez pas d'unité, vous ne rencontrez pas de problèmes liés à des configurations incorrectes d'unité. Cependant, si les points de données de la métrique ont plusieurs unités, il est recommandé d'utiliser l'unité appropriée.

Utilisez l'API DescribeAlarms pour obtenir une liste complète des paramètres pour vos métriques surveillées. Vous pouvez comparer cela à la sortie ListMetrics. Vérifiez les paramètres pour détecter :

  • Des erreurs d'orthographe et une mauvaise utilisation des lettres majuscules et minuscules. Les espaces de noms, les noms de métrique et les clés/valeurs de dimension sont sensibles à la casse.
  • Des dimensions mal spécifiées ou manquantes.

Configuration incorrecte des périodes d'alarme

Vous pouvez configurer une alarme pour récupérer les points de données selon la fréquence souhaitée. Cependant, vous pouvez obtenir des états indésirables si l'alarme utilise une période plus courte que celle utilisée par le service (ou la source) pour envoyer les points de données à la métrique. Pour éviter les états INSUFFICIENT_DATA indésirables, il est recommandé de configurer la période de l'alarme pour qu'elle soit supérieure ou égale à la période au cours de laquelle les points de données de la métrique sont transmis. Vous pouvez également utiliser les paramètres M sur N pour l'alarme.

Retard de livraison des points de données

En fonction des points de données envoyés à CloudWatch, vous pouvez rencontrer des états INSUFFICIENT_DATA inattendus pour une alarme surveillant une métrique.

Par exemple, l’une de vos applications personnalisées peut envoyer des points de données depuis un logiciel déployé dans une instance EC2 vers une métrique personnalisée. Pour éviter de perdre des données, vous pouvez configurer l'application pour relancer les appels d’API ayant échoué. Cependant, en raison d'un facteur externe (par exemple, une modification des paramètres VPC), l'instance perd la connectivité avec CloudWatch. Dans ce cas, votre environnement génère toujours des données. Mais les points de données envoyés échouent tant que le problème externe n'est pas résolu.

Si vous avez configuré une alarme standard, l'alarme évalue la métrique toutes les minutes. Lors de l'évaluation, l'alarme récupère les derniers points de données disponibles de la métrique configurée. Pendant cette période sans connectivité, l'alarme continue d'évaluer la métrique. Puisque les points de données ne sont pas correctement transmis à CloudWatch, l'alarme ne peut pas récupérer de points de données pour ces périodes d'évaluation. Cela déclenche l’état INSUFFICIENT_DATA.

Après avoir récupéré la connectivité, l'application envoie les points de données en attente, chacun avec son propre horodatage. Comme les points de données sont envoyés après ce délai, l'alarme peut désormais récupérer les points de données récents en fonction de la période et de la période d'évaluation que vous avez spécifiées dessus. À ce stade, vous ne voyez plus d'espaces vides dans la métrique, car les points de données sont désormais stockés dans CloudWatch. Cependant, comme l'alarme a déjà évalué cette période de temps, l'historique de l'alarme affiche toujours un message similaire à ce qui suit :

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

Si vous ne souhaitez pas que l'alarme affiche l'état INSUFFICIENT_DATA, vous pouvez modifier la façon dont l'alarme traite les données manquantes.


AWS OFFICIEL
AWS OFFICIELA mis à jour il y a 2 ans