Utilisation du kit JS AWS SDK et transmission des paramètres suivants:
[ { "Id": "m1", "Label": "NetworkOut", "Timestamps": [], "Values": [], "StatusCode": "Complete", "Messages": [] } ]
Voici le résultat:
{ "StartTime": 1548111915, "EndTime": 1549321515, "MetricDataQueries": [ { "Id": "m1", "MetricStat": { "Metric": { "MetricName": "NetworkOut", "Namespace": "AWS/EC2", "Dimensions": [ { "Name": "InstanceId", "Value": "i-[redacted]" } ] }, "Period": 300, "Stat": "Average", "Unit": "Gigabytes" } } ] }
La requête correspond étroitement à l'exemple de requête trouvé à https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_GetMetricData.html#API_GetMetricData_Examples
Je suis sûr que l'instance est une instance valide qui a certainement eu du trafic NetworkOut pendant cette plage de dates.
Quelle raison pourrait expliquer le manque d'éléments dans le tableau Values
?
3 Réponses :
Je l'ai essayé et j'ai obtenu le même résultat (vide) que vous.
J'ai ensuite changé Gigaoctets
en Bytes
et j'ai obtenu un résultat. Il se peut donc que vous deviez réduire la taille de votre unité.
Voici la commande que j'ai utilisée pour l'AWS CLI:
aws cloudwatch get-metric-data --start-time 1548111915 --end-time 1549321515 --metric-data-queries '[ { "Id": "m1", "MetricStat": { "Metric": { "MetricName": "NetworkOut", "Namespace": "AWS/EC2", "Dimensions": [ { "Name": "InstanceId", "Value": "i-xxx" } ] }, "Period": 300, "Stat": "Average", "Unit": "Bytes" } } ]'
Une meilleure solution consistait à omettre complètement "Unité", ce qui permettait à AWS de choisir l'unité appropriée, non seulement en échelle, mais en catégorie.
Pour les futurs inquisiteurs, il y a plusieurs raisons pour lesquelles le client aws renvoie silencieusement un ensemble de données vide au lieu d'une erreur, car les exigences d'entrée sont plus strictes que les attentes de l'utilisateur standard, mais les exigences de sortie sont beaucoup plus lâches. Exemples
Références: