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