sensu-plugins-aws 10.2.0 → 11.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 +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
|