Как получить Ruby SDK Cloudwatch metics
Я пытаюсь получить показатели ЦП из облачных часов, используя Ruby SDK v2 в Rails.
metric = Aws::CloudWatch::Metric.new( 'AWS/EC2', 'CPUUtilization', region: 'eu-west-1')
@stats = metric.get_statistics({
dimensions: [{ :name => 'InstanceID', :value => 'i-14b21212' }],
start_time: 2.days.ago.utc.iso8601,
end_time: Time.now.utc.iso8601,
period: 300,
statistics: ["Average"]
})
Это не ошибка, но не возвращает никаких точек данных. Я пробовал это с экземпляром с включенным предварительным мониторингом и один без и ничего.
Вышеуказанное возвращает:
[Aws::CloudWatch::Client 200 0.639127 0 retries] get_metric_statistics(dimensions:[{name:"InstanceID",value:"[FILTERED]"}],start_time:2016-12-13 17:17:53 UTC,end_time:2016-12-15 17:17:53 UTC,period:300,statistics:["Average"],namespace:"AWS/EC2",metric_name:"CPUUtilization")
=> #<struct Aws::CloudWatch::Types::GetMetricStatisticsOutput label="CPUUtilization", datapoints=[]>
Я также попробовал это и все еще ничего не получаю:
metric = Aws::CloudWatch::Metric.new( 'AWS/EC2', 'CPUUtilization', region: 'eu-west-1')
@stats = metric.get_statistics({
dimensions: [{ :name => 'InstanceID', :value => 'i-14b21212' }],
start_time: 2.days.ago.utc.iso8601,
end_time: Time.now.utc.iso8601,
period: 300,
extended_statistics: ["p10", "p20", "p30", "p40", "p50", "p60", "p70", "p80", "p90", "p100"]
})
Любая помощь в том, что я делаю неправильно, была бы отличной!
2 ответа
Решение
Согласно документации:
Метрические фильтры чувствительны к регистру.
Так что это будет правильный вызов:
размеры: [{: name => 'InstanceId',: value => 'i-14b21212'}],
Убедитесь, что вы правильно указали регион. Я использую регион по умолчанию в Токио, но мой CloudWatch используется в северной Вирджинии.