Почему GetMetricData возвращает пустой набор значений? - PullRequest
0 голосов
/ 05 февраля 2019

Использование JS AWS SDK и передача следующих параметров:

{
  "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"
      }
    }
  ]
}

Это вывод:

[
  {
    "Id": "m1",
    "Label": "NetworkOut",
    "Timestamps": [],
    "Values": [],
    "StatusCode": "Complete",
    "Messages": []
  }
]
  1. Запрос близко соответствует примеру запросанайдено в https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_GetMetricData.html#API_GetMetricData_Examples

  2. Я уверен, что экземпляр является допустимым экземпляром, который определенно имел трафик NetworkOut в течение этого диапазона дат.

Какая причина моглаучитывать отсутствие элементов в массиве Values?

Ответы [ 3 ]

0 голосов
/ 11 февраля 2019

Лучшим решением было вообще исключить «Единицу», что позволило AWS выбрать подходящую единицу не только в масштабе, но и в категории.

0 голосов
/ 26 июня 2019

У будущих инквизиторов есть несколько причин, по которым aws-клиент молча возвращает пустой набор данных вместо ошибки, потому что требования к входу более строгие, чем ожидания стандартного пользователя, но требования к выходу намного слабее.Примеры

  • неправильная единица измерения
  • неполный список измерений
  • опечатки, чувствительность к регистру и т. Д.

Ссылки:

0 голосов
/ 05 февраля 2019

Я попробовал и получил тот же (пустой) результат, что и вы.

Затем я изменил Gigabytes на Bytes и получил результат.Поэтому может потребоваться уменьшить размер вашего устройства.

Вот команда, которую я использовал для интерфейса командной строки AWS:

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"
      }
    }
  ]'
...