sensu-plugins-aws 10.2.0 → 11.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +11 -1
- data/bin/metrics-elb.rb +13 -5
- data/lib/sensu-plugins-aws/version.rb +2 -2
- metadata +3 -5
- data/bin/metrics-elb-full.rb +0 -145
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cf38e747e9eacaf74e5266c61fb6425729e033b72258e95a97c2c2c3bfafaa6e
|
4
|
+
data.tar.gz: ac749130f70447fc122f00613424793ea1f699184bccc1bee71de020a75c0c84
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 88e750cb8957949dcf0d9d235f182e5327841b9dac8aa0fe53689012a2a7dbd6c49d4f5591d95284175d45aaff0a66115b7569ba4e7bcd05841937a348598447
|
7
|
+
data.tar.gz: b923084b699ebb9a26ac5e11632573a79d9ff432b6de1b5434d2ca027283d017ae611517981b6656435bf5a5f7d83232c39e4fc44dfc1fdac63db71b185c1854
|
data/CHANGELOG.md
CHANGED
@@ -5,6 +5,15 @@ This CHANGELOG follows the format listed [here](https://github.com/sensu-plugins
|
|
5
5
|
|
6
6
|
## [Unreleased]
|
7
7
|
|
8
|
+
## [11.0.0] - 2018-02-09
|
9
|
+
### Breaking Changes
|
10
|
+
- metrics-elb-full.rb: removed in favor of metrics-elb.rb, which is slightly more configurable and uses the AWS-SDK v2 already. Compared to metrics-elb-full.rb, metrics-elb.rb no longer takes --aws-access-key, --aws-secret-access-key flags, Authentication should be configured per [here](https://github.com/sensu-plugins/sensu-plugins-aws/blob/master/README.md#authentication). --scheme has a default value of `elb` now (@multani)
|
11
|
+
- metrics-elb.rb: honors the --fetch_age flag which now looks up values 60 seconds in the past by default. This was the intended behavior, as documented in the NOTES section (@multani)
|
12
|
+
- metrics-elb.rb: --scheme default value is `elb` now, to be more consistent with the other metrics checks (@multani)
|
13
|
+
|
14
|
+
### Fixed
|
15
|
+
- metrics-elb.rb: properly handle the --scheme and --fetch_age flags (@multani)
|
16
|
+
|
8
17
|
## [10.2.0] - 2018-01-20
|
9
18
|
### Added
|
10
19
|
- `check-s3-bucket-visiblity.rb` - checks an S3 bucket for existence of a website configuration or bucket policy containing `Get*`,
|
@@ -427,7 +436,8 @@ WARNING: This release contains major breaking changes that will impact all user
|
|
427
436
|
### Added
|
428
437
|
- initial release
|
429
438
|
|
430
|
-
[Unreleased]: https://github.com/sensu-plugins/sensu-plugins-aws/compare/
|
439
|
+
[Unreleased]: https://github.com/sensu-plugins/sensu-plugins-aws/compare/11.0.0...HEAD
|
440
|
+
[11.0.0]: https://github.com/sensu-plugins/sensu-plugins-aws/compare/10.2.0...11.0.0
|
431
441
|
[10.2.0]:https://github.com/sensu-plugins/sensu-plugins-aws/compare/10.1.2...10.2.0
|
432
442
|
[10.1.2]: https://github.com/sensu-plugins/sensu-plugins-aws/compare/10.1.1...10.1.2
|
433
443
|
[10.1.1]: https://github.com/sensu-plugins/sensu-plugins-aws/compare/10.1.0...10.1.1
|
data/bin/metrics-elb.rb
CHANGED
@@ -52,7 +52,7 @@ class ELBMetrics < Sensu::Plugin::Metric::CLI::Graphite
|
|
52
52
|
description: 'Metric naming scheme, text to prepend to metric',
|
53
53
|
short: '-s SCHEME',
|
54
54
|
long: '--scheme SCHEME',
|
55
|
-
default: ''
|
55
|
+
default: 'elb'
|
56
56
|
|
57
57
|
option :fetch_age,
|
58
58
|
description: 'How long ago to fetch metrics for',
|
@@ -106,8 +106,8 @@ class ELBMetrics < Sensu::Plugin::Metric::CLI::Graphite
|
|
106
106
|
}
|
107
107
|
],
|
108
108
|
statistics: [value],
|
109
|
-
start_time: config[:end_time] - config[:period],
|
110
|
-
end_time: config[:end_time],
|
109
|
+
start_time: config[:end_time] - config[:fetch_age] - config[:period],
|
110
|
+
end_time: config[:end_time] - config[:fetch_age],
|
111
111
|
period: config[:period]
|
112
112
|
)
|
113
113
|
end
|
@@ -117,8 +117,16 @@ class ELBMetrics < Sensu::Plugin::Metric::CLI::Graphite
|
|
117
117
|
static_value = {}
|
118
118
|
statistics.each do |key, static|
|
119
119
|
r = cloud_watch_metric(key, static, load_balancer_name)
|
120
|
-
|
121
|
-
|
120
|
+
keys = if config[:scheme] == ''
|
121
|
+
[]
|
122
|
+
else
|
123
|
+
[config[:scheme]]
|
124
|
+
end
|
125
|
+
keys.concat [load_balancer_name, key, static]
|
126
|
+
metric_key = keys.join('.')
|
127
|
+
|
128
|
+
static_value[metric_key] = static
|
129
|
+
result[metric_key] = r[:datapoints][0] unless r[:datapoints][0].nil?
|
122
130
|
end
|
123
131
|
result.each do |key, value|
|
124
132
|
output key.downcase.to_s, value[static_value[key].downcase], value[:timestamp].to_i
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sensu-plugins-aws
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 11.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sensu-Plugins and contributors
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-02-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: sensu-plugin
|
@@ -326,7 +326,6 @@ executables:
|
|
326
326
|
- metrics-ec2-count.rb
|
327
327
|
- metrics-ec2-filter.rb
|
328
328
|
- metrics-elasticache.rb
|
329
|
-
- metrics-elb-full.rb
|
330
329
|
- metrics-elb.rb
|
331
330
|
- metrics-emr-steps.rb
|
332
331
|
- metrics-rds.rb
|
@@ -409,7 +408,6 @@ files:
|
|
409
408
|
- bin/metrics-ec2-count.rb
|
410
409
|
- bin/metrics-ec2-filter.rb
|
411
410
|
- bin/metrics-elasticache.rb
|
412
|
-
- bin/metrics-elb-full.rb
|
413
411
|
- bin/metrics-elb.rb
|
414
412
|
- bin/metrics-emr-steps.rb
|
415
413
|
- bin/metrics-rds.rb
|
@@ -447,7 +445,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
447
445
|
version: '0'
|
448
446
|
requirements: []
|
449
447
|
rubyforge_project:
|
450
|
-
rubygems_version: 2.7.
|
448
|
+
rubygems_version: 2.7.5
|
451
449
|
signing_key:
|
452
450
|
specification_version: 4
|
453
451
|
summary: Sensu plugins for working with an AWS environment
|
data/bin/metrics-elb-full.rb
DELETED
@@ -1,145 +0,0 @@
|
|
1
|
-
#! /usr/bin/env ruby
|
2
|
-
#
|
3
|
-
# elb-full-metrics
|
4
|
-
#
|
5
|
-
# DESCRIPTION:
|
6
|
-
# Gets latency metrics from CloudWatch and puts them in Graphite for longer term storage
|
7
|
-
#
|
8
|
-
# OUTPUT:
|
9
|
-
# metric-data
|
10
|
-
#
|
11
|
-
# PLATFORMS:
|
12
|
-
# Linux
|
13
|
-
#
|
14
|
-
# DEPENDENCIES:
|
15
|
-
# gem: aws-sdk-v1
|
16
|
-
# gem: sensu-plugin
|
17
|
-
#
|
18
|
-
# USAGE:
|
19
|
-
# #YELLOW
|
20
|
-
#
|
21
|
-
# NOTES:
|
22
|
-
# Returns latency statistics by default. You can specify any valid ELB metric type, see
|
23
|
-
# http://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/CW_Support_For_AWS.html#elb-metricscollected
|
24
|
-
#
|
25
|
-
# By default fetches statistics from one minute ago. You may need to fetch further back than this;
|
26
|
-
# high traffic ELBs can sometimes experience statistic delays of up to 10 minutes. If you experience this,
|
27
|
-
# raising a ticket with AWS support should get the problem resolved.
|
28
|
-
# As a workaround you can use eg -f 300 to fetch data from 5 minutes ago.
|
29
|
-
#
|
30
|
-
# LICENSE:
|
31
|
-
# Copyright 2013 Bashton Ltd http://www.bashton.com/
|
32
|
-
# Released under the same terms as Sensu (the MIT license); see LICENSE
|
33
|
-
# for details.
|
34
|
-
#
|
35
|
-
|
36
|
-
require 'sensu-plugin/metric/cli'
|
37
|
-
require 'aws-sdk-v1'
|
38
|
-
|
39
|
-
class ELBMetrics < Sensu::Plugin::Metric::CLI::Graphite
|
40
|
-
option :elbname,
|
41
|
-
description: 'Name of the Elastic Load Balancer (separate with commas for multiple ELBs)',
|
42
|
-
short: '-n ELB_NAME',
|
43
|
-
long: '--name ELB_NAME',
|
44
|
-
required: true
|
45
|
-
|
46
|
-
option :scheme,
|
47
|
-
description: 'Metric naming scheme, text to prepend to metric',
|
48
|
-
short: '-s SCHEME',
|
49
|
-
long: '--scheme SCHEME',
|
50
|
-
default: ''
|
51
|
-
|
52
|
-
option :fetch_age,
|
53
|
-
description: 'How long ago to fetch metrics for',
|
54
|
-
short: '-f AGE',
|
55
|
-
long: '--fetch_age',
|
56
|
-
default: 60,
|
57
|
-
proc: proc(&:to_i)
|
58
|
-
|
59
|
-
option :aws_access_key,
|
60
|
-
short: '-a AWS_ACCESS_KEY',
|
61
|
-
long: '--aws-access-key AWS_ACCESS_KEY',
|
62
|
-
description: "AWS Access Key. Either set ENV['AWS_ACCESS_KEY'] or provide it as an option",
|
63
|
-
default: ENV['AWS_ACCESS_KEY']
|
64
|
-
|
65
|
-
option :aws_secret_access_key,
|
66
|
-
short: '-k AWS_SECRET_KEY',
|
67
|
-
long: '--aws-secret-access-key AWS_SECRET_KEY',
|
68
|
-
description: "AWS Secret Access Key. Either set ENV['AWS_SECRET_KEY'] or provide it as an option",
|
69
|
-
default: ENV['AWS_SECRET_KEY']
|
70
|
-
|
71
|
-
option :aws_region,
|
72
|
-
short: '-r AWS_REGION',
|
73
|
-
long: '--aws-region REGION',
|
74
|
-
description: 'AWS Region (defaults to us-east-1).',
|
75
|
-
default: 'us-east-1'
|
76
|
-
|
77
|
-
def aws_config
|
78
|
-
{ access_key_id: config[:aws_access_key],
|
79
|
-
secret_access_key: config[:aws_secret_access_key],
|
80
|
-
region: config[:aws_region] }
|
81
|
-
end
|
82
|
-
|
83
|
-
def run
|
84
|
-
statistic_type = {
|
85
|
-
'Latency' => 'Average',
|
86
|
-
'RequestCount' => 'Sum',
|
87
|
-
'UnHealthyHostCount' => 'Average',
|
88
|
-
'HealthyHostCount' => 'Average',
|
89
|
-
'HTTPCode_Backend_2XX' => 'Sum',
|
90
|
-
'HTTPCode_Backend_3XX' => 'Sum',
|
91
|
-
'HTTPCode_Backend_4XX' => 'Sum',
|
92
|
-
'HTTPCode_Backend_5XX' => 'Sum',
|
93
|
-
'HTTPCode_ELB_4XX' => 'Sum',
|
94
|
-
'HTTPCode_ELB_5XX' => 'Sum',
|
95
|
-
'BackendConnectionErrors' => 'Sum',
|
96
|
-
'SurgeQueueLength' => 'Maximum',
|
97
|
-
'SpilloverCount' => 'Sum'
|
98
|
-
}
|
99
|
-
|
100
|
-
begin
|
101
|
-
et = Time.now - config[:fetch_age]
|
102
|
-
st = et - 60
|
103
|
-
|
104
|
-
cw = AWS::CloudWatch::Client.new aws_config
|
105
|
-
|
106
|
-
options = {
|
107
|
-
'namespace' => 'AWS/ELB',
|
108
|
-
'dimensions' => [
|
109
|
-
{
|
110
|
-
'name' => 'LoadBalancerName',
|
111
|
-
'value' => nil
|
112
|
-
}
|
113
|
-
],
|
114
|
-
'start_time' => st.iso8601,
|
115
|
-
'end_time' => et.iso8601,
|
116
|
-
'period' => 60
|
117
|
-
}
|
118
|
-
config[:elbname].split(',').each do |elbname|
|
119
|
-
graphitepath = if config[:scheme] == ''
|
120
|
-
elbname.to_s
|
121
|
-
else
|
122
|
-
"#{config[:scheme]}.#{elbname}"
|
123
|
-
end
|
124
|
-
result = {}
|
125
|
-
statistic_type.each do |key, value|
|
126
|
-
options['metric_name'] = key
|
127
|
-
options['dimensions'][0]['value'] = elbname
|
128
|
-
options['statistics'] = [value]
|
129
|
-
r = cw.get_metric_statistics(options)
|
130
|
-
result[key] = r[:datapoints][0] unless r[:datapoints][0].nil?
|
131
|
-
end
|
132
|
-
|
133
|
-
# We only return data when we have some to return
|
134
|
-
next if result.nil?
|
135
|
-
result.each do |key, value|
|
136
|
-
puts key, value
|
137
|
-
output graphitepath + ".#{key}", value[:sum] || value[:average], value[:timestamp].to_i
|
138
|
-
end
|
139
|
-
end
|
140
|
-
rescue StandardError => e
|
141
|
-
critical "Error: exception: #{e}"
|
142
|
-
end
|
143
|
-
ok
|
144
|
-
end
|
145
|
-
end
|