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

Date de la dernière mise à jour : 26/03/2020

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

Résolution

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

  • Une alarme Amazon CloudWatch vient de démarrer.
  • La métrique n'est pas disponible.
  • Les données sont insuffisantes pour que la métrique puisse déterminer l'état de l'alarme.

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

Comportement de métrique normal

Une alarme affichant l'état INSUFFICIENT_DATA peut simplement 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, mais des métriques spécifiques peuvent avoir des périodes sans points de données. Par exemple, la métrique CPUUtilization d'une instance EC2 a un point de données à chaque période. Toutefois, si vous arrêtez l'instance, le service ne transmet aucun point de données vers cette dernière. Un autre exemple est la métrique HTTPCode_ELB_5XX_Count pour un équilibreur de charge d'application. Le service envoie des points de données en cas d'erreur (ou d'événement). S'il n'y a pas d'erreur au cours d'une période, le résultat est un ensemble de données vide (au lieu d'une valeur nulle).

Si une alarme surveille une métrique qui n'a pas de points de données pendant une durée donnée définie, l'alarme affiche l’état INSUFFICIENT_DATA au cours de ces périodes. Pour forcer l'alarme à 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 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 tente 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é. Toutefois, 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 métriques sont sensibles à la casse) ;
  • des dimensions ou des unités spécifiées de manière incorrecte.

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. Toutefois, vous pouvez obtenir des états indésirables si l'alarme utilise une période inférieure à 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 é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, 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 configurez l'application pour relancer les appels API ayant échoué. En raison d'un facteur externe (par exemple, une modification des paramètres VPC), l'instance perd la connectivité avec CloudWatch. Dans ce scénario, votre environnement génère toujours des données, mais les points de données envoyés échouent.

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 de la métrique configurée. Pendant cette période sans connectivité, l'alarme continue d'évaluer la métrique. Étant donné que les points de données ne sont pas envoyés, l'alarme ne peut pas récupérer de points de données pour ces périodes d'évaluation, ce qui déclenche un é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. Étant donné que 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, en se comportant à nouveau comme prévu. À 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, 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.


Cet article vous a-t-il été utile ?

Cette page peut-elle être améliorée ?


Vous avez besoin d’aide ?