Module: AwsReporting::Alarm
- Defined in:
- lib/aws-reporting/alarm.rb
Class Method Summary collapse
Instance Method Summary collapse
Class Method Details
.get_alarms ⇒ Object
22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/aws-reporting/alarm.rb', line 22 def get_alarms() alarms = [] AWS.regions.each{|r| Config.update_region(r.name) cw = AWS::CloudWatch.new cw.alarms.each do |alarm| alarms << get_alarm_info(r.name, alarm) end } alarms.sort_by{|alarm| [alarm[:namespace], serialize(alarm[:dimensions]), alarm[:metric_name], alarm[:name]].join(' ')} end |
Instance Method Details
#get_alarm_info(region, alarm) ⇒ Object
7 8 9 10 11 12 13 14 |
# File 'lib/aws-reporting/alarm.rb', line 7 def get_alarm_info(region, alarm) info = {:name => alarm.name, :region => region, :namespace => alarm.namespace, :dimensions => alarm.dimensions, :metric_name => alarm.metric_name, :status => get_status(alarm)} end |
#get_status(alarm) ⇒ Object
16 17 18 19 20 |
# File 'lib/aws-reporting/alarm.rb', line 16 def get_status(alarm) return :ALARM if alarm.state_value == 'ALARM' return :ALARM if alarm.history_items.to_a.select{|history| history.history_item_type == 'StateUpdate'}.length > 0 return :OK end |
#serialize(dimensions) ⇒ Object
3 4 5 |
# File 'lib/aws-reporting/alarm.rb', line 3 def serialize(dimensions) dimensions.sort_by{|dimension| dimension[:name]}.map{|dimension| dimension[:name] + "=>" + dimension[:value]}.join(',') end |