bin/check-autoscaling-cpucredits.rb in sensu-plugins-aws-2.1.0 vs bin/check-autoscaling-cpucredits.rb in sensu-plugins-aws-2.1.1

- old
+ new

@@ -10,11 +10,11 @@ # # PLATFORMS: # Linux # # DEPENDENCIES: -# gem: aws-sdk-v1 +# gem: aws-sdk # gem: sensu-plugin # # USAGE: # ./check-autoscaling-cpucredits.rb -r ${your_region} --warning-under 100 --critical-under 50 # @@ -26,11 +26,11 @@ # Released under the same terms as Sensu (the MIT license); see LICENSE # for details. # require 'sensu-plugin/check/cli' -require 'aws-sdk-v1' +require 'aws-sdk' class CheckEc2CpuCredits < Sensu::Plugin::Check::CLI option :aws_access_key, short: '-a AWS_ACCESS_KEY', long: '--aws-access-key AWS_ACCESS_KEY', @@ -88,42 +88,42 @@ region: config[:aws_region] } end def asg - @asg ||= AWS::AutoScaling.new aws_config + @asg ||= Aws::AutoScaling::Client.new aws_config end def cloud_watch - @cloud_watch ||= AWS::CloudWatch.new aws_config + @cloud_watch ||= Aws::CloudWatch::Client.new aws_config end def get_count_metric(group) - cloud_watch.metrics - .with_namespace('AWS/EC2') - .with_metric_name("#{config[:countmetric]}") - .with_dimensions(name: 'AutoScalingGroupName', value: group) - .first - end - - def statistics_options - { + cloud_watch.get_metric_statistics( + namespace: 'AWS/EC2', + metric_name: config[:countmetric].to_s, + dimensions: [ + { + name: 'AutoScalingGroupName', + value: group + } + ], start_time: config[:end_time] - 600, - end_time: config[:end_time], + end_time: config[:end_time], statistics: ['Average'], - period: config[:period] - } + period: config[:period], + unit: 'Count' + ) end - def latest_value(metric) - value = metric.statistics(statistics_options.merge unit: 'Count') + def latest_value(value) value.datapoints[0][:average].to_f unless value.datapoints[0].nil? end def check_metric(group) metric = get_count_metric group - latest_value metric + latest_value metric unless metric.nil? end def check_group(group, reportstring, warnflag, critflag) metric_value = check_metric group if !metric_value.nil? && metric_value < config[:critical_under].to_f @@ -139,12 +139,12 @@ def run warnflag = 0 critflag = 0 reportstring = '' if config[:group].nil? - asg.groups.each do |group| + asg.describe_auto_scaling_groups.auto_scaling_groups.each do |group| if group.desired_capacity > 0 - reportstring, warnflag, critflag = check_group(group.name, reportstring, warnflag, critflag) + reportstring, warnflag, critflag = check_group(group.auto_scaling_group_name, reportstring, warnflag, critflag) end end else reportstring, warnflag, critflag = check_group(config[:group], reportstring, warnflag, critflag) end