Pourquoi mon appel d'API CloudWatch GetMetricStatistics ne renvoie pas de points de données ? 

Date de la dernière mise à jour : 22/02/2022

Mon appel d'API Amazon CloudWatch « GetMetricStatistics » ne renvoie aucun point de données. Toutefois, les points de données sont disponibles sur la console CloudWatch. Comment résoudre ce problème ?

Solution

Remarque : si vous recevez des erreurs lors de l'exécution de commandes à partir de l'AWS Command Line Interface (AWS CLI), assurez-vous d'utiliser la version la plus récente de l'interface.

CloudWatch étant un service régional, il est donc important de s'assurer que l'appel d'API utilise la région correcte. L'appel d'API GetMetricStatistics est effectué avec plusieurs arguments qui doivent correspondre aux propriétés de la métrique. Ces arguments sont sensibles à la casse. Vous devez donc vous assurer que les noms et les casses correspondent dans la configuration de la console CloudWatch. Dans la plupart des cas, les erreurs sont provoquées par des arguments incorrects.

Dimensions

Si la métrique est créée avec plusieurs dimensions, ses points de données peuvent être récupérés uniquement en spécifiant toutes les dimensions configurées. Supposons que vous publiez la métrique ServerStats dans l'espace de noms DataCenterMetric avec les propriétés suivantes :

Dimensions: Server=Prod, Domain=Frankfurt, Unit: Count, Timestamp: 2016-10-31T12:30:00Z, Value: 105

Vous pouvez récupérer les points de données de cette métrique en spécifiant les dimensions suivantes :

Server=Prod,Domain=Frankfurt

Toutefois, vous ne pouvez pas récupérer les points de données si vous ne spécifiez qu'une seule des deux dimensions. Par exemple :

Server=Prod

Avec l'AWS CLI, le format pour la spécification des dimensions dans la commande get-metric-statistics est différente de celui de la commande put-metric-data. Veillez à utiliser un format similaire au suivant :

"Name"=string, "Value"=string

Au lieu de ce format :

Name=Value

Exemple de l'appel get-metric-statistics :

aws cloudwatch get-metric-statistics --metric-name "MyMetric" --start-time 2018-04-08T23:18:00Z --end-time 2018-04-09T23:18:00Z --period 3600 --namespace "MyNamespace" --statistics Maximum --dimensions Name=Server,Value=Prod

Exemple de l'appel put-metric-data :

aws cloudwatch put-metric-data --namespace "MyNamespace" --metric-name "MyMetric" --dimensions Server=Prod --value 10

Période

Si la métrique n'est pas transmise pour la valeur de période spécifiée, aucun point de données n'est renvoyé.

Par exemple, si vous activez la surveillance basique pour une instance, Amazon Elastic Compute Cloud (Amazon EC2) transmet des points de données toutes les cinq minutes. Supposons qu'Amazon EC2 transmette les points de données aux horodatages suivants : 12 h 00, 12 h 05, 12 h 10, etc. Si l'heure de début et de fin sont entre 12 h 01 et 12 h 04, et que vous essayez de récupérer ces points de données avec une période de 60 secondes, aucun point de données n'apparaît. Il est une bonee pratique que les heures de début et de fin s'étendent au-delà de la granularité minimale offerte par la métrique (5 minutes dans ce cas). Ou bien, utilisez une période supérieure ou égale à la granularité minimale offerte par la métrique.

Statistiques

Pour récupérer les statistiques de centiles d'une métrique, utilisez la commande ExtendedStatistic.

CloudWatch utilise des points de données brutes pour calculer les centiles. Lorsque vous publiez des données avec un ensemble de statistiques, vous ne pouvez récupérer les statistiques de centiles de ces données uniquement que si une des conditions suivantes est vraie :

  • La valeur SampleCount de l'ensemble de statistiques est égale à 1.
  • Les valeurs minimum et maximum de l'ensemble de statistiques sont égales.

Unité

  • Si l'unité spécifiée est différente de celle configurée pour la métrique, aucun point de données n'est renvoyé.
  • Si vous ne spécifiez pas d'argument d'unité, les points de données de l'ensemble des unités sont renvoyés.

Heure de début et heure de fin

  • Formatez les arguments d'heure de début et d'heure de fin tel que spécifié dans la documentation GetMetricStatistics.
  • Si aucun point de données n'est envoyé pour la métrique entre l'heure de début et l'heure de fin, aucun point de données n'est renvoyé.

Remarque : les points de données avec des horodatages datant d'au moins 24 heures peuvent prendre au moins 48 heures pour devenir disponibles pour get-metric-statistics. Pour plus d'informations, consultez put-metric-data.


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


Besoin d'aide pour une question technique ou de facturation ?