Truptesh vous aide à résoudre l'erreur
de résultats vides pour les appels de l'API à
GetMetricStatistics

Mon appel de l'API GetMetricStatistics d'Amazon CloudWatch ne renvoie aucun point de données, mais ces points de données sont disponibles dans la console CloudWatch. Comme résoudre ce problème ?

CloudWatch est un service régional, c'est pourquoi vous devez vous assurer que la région utilisée pour l'appel de l'API est appropriée. L'appel de l'API GetMetricStatistics est effectué avec plusieurs arguments ; ceux-ci 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 cases correspondent dans la configuration de la console CloudWatch. La plupart des cas, certaines erreurs sont causées par des arguments incorrects.

Dimensions

Si la métrique a été créée avec plusieurs dimensions, les points de données pour cette métrique peuvent être récupérés uniquement en spécifiant toutes les dimensions configurées. Par exemple, supposons que vous publiez une métrique nommée 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 pour 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. Exemples :

Server=Prod

Avec l'interface de ligne de commande AWS (CLI AWS), le format pour la spécification des dimensions dans la commande get-metric-statistics est différente 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 la période spécifiée, aucun point de données n'est renvoyé.

Par exemple, si vous avez activé la surveillance basique pour une instance, EC2 transmet des points de données toutes les cinq minutes. Imaginons qu'EC2 transmette les points de données aux horaires suivants : 12:00, 12:05, 12:10, et ainsi de suite. A présent, si vos heures de début et de fin sont définies entre 12:01 et 12:04, et que vous essayez alors de récupérer ces points de données avec une période de 60 secondes, vous ne verrez apparaître aucun point de données. Une bonne pratique consiste à définir votre heure de début et heure de fin au-delà de la granularité minimale proposée par la métrique (5 minutes dans l'exemple présent), ou à utiliser une période supérieure ou égale à la granularité minimale qui est proposée par la métrique.

Statistiques

Pour récupérer les statistiques relatives aux centiles pour une métrique, utilisez la commande ExtendedStatistic.

CloudWatch utilise des points de données brutes pour calculer les centiles. Si vous publiez des données avec un ensemble de statistiques, vous ne pouvez pas récupérer de statistiques relatives aux centiles pour ces données uniquement si aucune des conditions suivantes n'est réunie :

  • 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 pour l'ensemble des unités sont renvoyés.

Heure de début et heure de fin

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

Remarque : les points de données avec des horaires datant d'au moins 24 heures peuvent prendre au moins 48 heures pour devenir disponibles pour get-metric-statistics à partir de l'heure à laquelle ils ont été soumis. Pour plus d'informations, consultez la section put-metric-data.


Cette page vous a-t-elle été utile ? Oui | Non

Retour au Centre de connaissances AWS Support

Vous avez besoin d'aide ? Consultez le site du Centre AWS Support

Date de publication : 05/06/2018