sensu-plugins-aws 13.0.0 → 14.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 827a2d3882e5684168c37dc96eb400995f1e9eb7
4
- data.tar.gz: 507eccbec90d6865ef4463d6ed5d528407264055
3
+ metadata.gz: e4c125fe85336325c696743b86e583d8dd5f15bc
4
+ data.tar.gz: f47506bebde25ee38b67630caa56c79b6fe17beb
5
5
  SHA512:
6
- metadata.gz: 283432c612966352858058dcdb0922a358a30f63814f8a62cf05367980bfdbc31478d98dc678c5808b2f8be74c4876e1858ea1968353ab892064095739fbbae0
7
- data.tar.gz: 1e838e99490104d3ea3b2165634fb9f18518283df9eec037b7e21c5027fb7b333c5f5b9155eb354da002ab37b506f72db92664566a710c5f858d2f196361c92e
6
+ metadata.gz: 41a57b823a533d2c30ae145e7a23ca7f5b4ab96103d648cf2f030efbd7bc12215c0e1ceaabbbd07f5d05d9e3c1a024d07c6cf074332c28d69bc177c076295cea
7
+ data.tar.gz: 75858702513638477429cc66226c8442ccf71d655f570105f3e7785d9d02f34be51368bac69dccfc122c5d9bffe879339707ca3e4aa60305ae70775d6c5cd31f
data/CHANGELOG.md CHANGED
@@ -5,6 +5,13 @@ This CHANGELOG follows the format listed [here](https://github.com/sensu-plugins
5
5
 
6
6
  ## [Unreleased]
7
7
 
8
+ ## [14.0.0] - 2018-11-01
9
+ ### Breaking Changes
10
+ - `check-elb-sum-requests.rb` no longer takes `aws_access_key` and `aws_secret_access_key` options. (@boutetnico)
11
+
12
+ ### Changed
13
+ - `check-elb-sum-requests.rb` was updated to aws-sdk v2. (@boutetnico)
14
+
8
15
  ## [13.0.0] - 2018-11-01
9
16
  ### Breaking Changes
10
17
  - `check-redshift-events.rb` no longer takes `aws_access_key` and `aws_secret_access_key` options. (@boutetnico)
@@ -26,7 +33,7 @@ This CHANGELOG follows the format listed [here](https://github.com/sensu-plugins
26
33
 
27
34
  ## [12.1.0] - 2018-08-28
28
35
  ### Added
29
- - new `check-efs.rb: checks cloudwatch metrics with the efs namespace for an arbitrary metric (@ivanfetch)
36
+ - new `check-efs.rb`: checks cloudwatch metrics with the efs namespace for an arbitrary metric (@ivanfetch)
30
37
 
31
38
  ## [12.0.0] - 2018-06-21
32
39
  ### Breaking Changes
@@ -513,7 +520,8 @@ WARNING: This release contains major breaking changes that will impact all user
513
520
  ### Added
514
521
  - initial release
515
522
 
516
- [Unreleased]: https://github.com/sensu-plugins/sensu-plugins-aws/compare/13.0.0...HEAD
523
+ [Unreleased]: https://github.com/sensu-plugins/sensu-plugins-aws/compare/14.0.0...HEAD
524
+ [14.0.0]: https://github.com/sensu-plugins/sensu-plugins-aws/compare/13.0.0...14.0.0
517
525
  [13.0.0]: https://github.com/sensu-plugins/sensu-plugins-aws/compare/12.4.0...13.0.0
518
526
  [12.4.0]: https://github.com/sensu-plugins/sensu-plugins-aws/compare/12.3.0...12.4.0
519
527
  [12.3.0]: https://github.com/sensu-plugins/sensu-plugins-aws/compare/12.2.0...12.3.0
@@ -12,7 +12,7 @@
12
12
  # Linux
13
13
  #
14
14
  # DEPENDENCIES:
15
- # gem: aws-sdk-v1
15
+ # gem: aws-sdk
16
16
  # gem: sensu-plugin
17
17
  #
18
18
  # USAGE:
@@ -31,20 +31,11 @@
31
31
  #
32
32
 
33
33
  require 'sensu-plugin/check/cli'
34
- require 'aws-sdk-v1'
34
+ require 'sensu-plugins-aws'
35
+ require 'aws-sdk'
35
36
 
36
37
  class CheckELBSumRequests < Sensu::Plugin::Check::CLI
37
- option :aws_access_key,
38
- short: '-a AWS_ACCESS_KEY',
39
- long: '--aws-access-key AWS_ACCESS_KEY',
40
- description: "AWS Access Key. Either set ENV['AWS_ACCESS_KEY'] or provide it as an option",
41
- default: ENV['AWS_ACCESS_KEY']
42
-
43
- option :aws_secret_access_key,
44
- short: '-k AWS_SECRET_KEY',
45
- long: '--aws-secret-access-key AWS_SECRET_KEY',
46
- description: "AWS Secret Access Key. Either set ENV['AWS_SECRET_KEY'] or provide it as an option",
47
- default: ENV['AWS_SECRET_KEY']
38
+ include Common
48
39
 
49
40
  option :aws_region,
50
41
  short: '-r AWS_REGION',
@@ -79,42 +70,40 @@ class CheckELBSumRequests < Sensu::Plugin::Check::CLI
79
70
  description: "Trigger a #{severity} if sum requests is over specified count"
80
71
  end
81
72
 
82
- def aws_config
83
- { access_key_id: config[:aws_access_key],
84
- secret_access_key: config[:aws_secret_access_key],
85
- region: config[:aws_region] }
86
- end
87
-
88
73
  def elb
89
- @elb ||= AWS::ELB.new aws_config
74
+ @elb ||= Aws::ElasticLoadBalancing::Client.new(aws_config)
90
75
  end
91
76
 
92
77
  def cloud_watch
93
- @cloud_watch ||= AWS::CloudWatch.new aws_config
78
+ @cloud_watch ||= Aws::CloudWatch::Client.new
94
79
  end
95
80
 
96
81
  def elbs
97
82
  return @elbs if @elbs
98
- @elbs = elb.load_balancers.to_a
99
- @elbs.select! { |elb| config[:elb_names].include? elb.name } if config[:elb_names]
83
+ @elbs = elb.describe_load_balancers.load_balancer_descriptions.to_a
84
+ @elbs.select! { |elb| config[:elb_names].include? elb.load_balancer_name } if config[:elb_names]
100
85
  @elbs
101
86
  end
102
87
 
103
- def latency_metric(elb_name)
104
- cloud_watch.metrics.with_namespace('AWS/ELB').with_metric_name('RequestCount').with_dimensions(name: 'LoadBalancerName', value: elb_name).first
105
- end
106
-
107
- def statistics_options
108
- {
88
+ def request_count_metric(elb_name)
89
+ cloud_watch.get_metric_statistics(
90
+ namespace: 'AWS/ELB',
91
+ metric_name: 'RequestCount',
92
+ dimensions: [
93
+ {
94
+ name: 'LoadBalancerName',
95
+ value: elb_name
96
+ }
97
+ ],
109
98
  start_time: config[:end_time] - config[:period],
110
- end_time: config[:end_time],
99
+ end_time: config[:end_time],
111
100
  statistics: ['Sum'],
112
- period: config[:period]
113
- }
101
+ period: config[:period]
102
+ )
114
103
  end
115
104
 
116
105
  def latest_value(metric)
117
- metric.statistics(statistics_options.merge(unit: 'Count')).datapoints.sort_by { |datapoint| datapoint[:timestamp] }.last[:sum]
106
+ metric.datapoints.sort_by { |datapoint| datapoint[:timestamp] }.last[:sum]
118
107
  end
119
108
 
120
109
  def flag_alert(severity, message)
@@ -123,7 +112,7 @@ class CheckELBSumRequests < Sensu::Plugin::Check::CLI
123
112
  end
124
113
 
125
114
  def check_sum_requests(elb)
126
- metric = latency_metric elb.name
115
+ metric = request_count_metric elb.load_balancer_name
127
116
  metric_value = begin
128
117
  latest_value metric
129
118
  rescue StandardError
@@ -132,18 +121,17 @@ class CheckELBSumRequests < Sensu::Plugin::Check::CLI
132
121
 
133
122
  @severities.each_key do |severity|
134
123
  threshold = config[:"#{severity}_over"]
135
- puts metric_value
136
124
  next unless threshold
137
125
  next if metric_value < threshold
138
126
  flag_alert severity,
139
- "; #{elbs.size == 1 ? nil : "#{elb.inspect}'s"} Sum Requests is #{metric_value}. (expected lower than #{threshold})"
127
+ "; #{elbs.size == 1 ? nil : "#{elb.load_balancer_name}'s"} Sum Requests is #{metric_value}. (expected lower than #{threshold})"
140
128
  break
141
129
  end
142
130
  end
143
131
 
144
132
  def run
145
133
  @message = if elbs.size == 1
146
- elbs.first.inspect
134
+ elbs.first.load_balancer_name
147
135
  else
148
136
  "#{elbs.size} load balancers total"
149
137
  end
@@ -155,7 +143,7 @@ class CheckELBSumRequests < Sensu::Plugin::Check::CLI
155
143
 
156
144
  elbs.each { |elb| check_sum_requests elb }
157
145
 
158
- @message += "; (#{config[:statistics].to_s.capitalize} within #{config[:period]} seconds "
146
+ @message += "; (Sum within #{config[:period]} seconds "
159
147
  @message += "between #{config[:end_time] - config[:period]} to #{config[:end_time]})"
160
148
 
161
149
  if @severities[:critical]
@@ -1,6 +1,6 @@
1
1
  module SensuPluginsAWS
2
2
  module Version
3
- MAJOR = 13
3
+ MAJOR = 14
4
4
  MINOR = 0
5
5
  PATCH = 0
6
6
  VER_STRING = [MAJOR, MINOR, PATCH].compact.join('.')
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sensu-plugins-aws
3
3
  version: !ruby/object:Gem::Version
4
- version: 13.0.0
4
+ version: 14.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sensu-Plugins and contributors