sensu-plugins-sensu 0.1.0 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a381a81345529aeac455af0750fd82ee60598560
4
- data.tar.gz: d9285b72add6aa32615cb5cbc59f36f6729fd6de
3
+ metadata.gz: 04111b997fea6a2aa5d6a1659b03e99cb5d68bbf
4
+ data.tar.gz: 54f75cddacfeefb9bf10fb0e159c3f17e66766f0
5
5
  SHA512:
6
- metadata.gz: ebd55f0b6b842882983204d55b1ff3c2ad2e647d463a7d2963ff627e753f5e444d68858c3627832ccc502736ecffc48d5fc99fcfbf2b6b081eaac149066a2305
7
- data.tar.gz: 5c385b751d7032c950753eaead76b8e360844d3095d032b54d3fbcb18f99a3ab337f7ac5f23cf61aa570c6fb48078152eaafcd9c492242276200e86fd01c1d46
6
+ metadata.gz: acae33c98fbda17c612c842afba2916a320775d5815af897ecb5248a764fb0ea53328983a3b21db3b1f94848d4bbbbce55ade95d817924ff50b99e40b1475ece
7
+ data.tar.gz: 0c32247f9a2778ae88d98b1360fb67082c02a6def6c249f863b613579b406a47263fafc6fd1b4d42fa2dd3a4fdcbd5d08b94e6a7fc83961b08f944e034373ba8
data/CHANGELOG.md CHANGED
@@ -3,9 +3,26 @@ This project adheres to [Semantic Versioning](http://semver.org/).
3
3
 
4
4
  This CHANGELOG follows the format listed at [Keep A Changelog](http://keepachangelog.com/)
5
5
 
6
- ## Unreleased
6
+ ## [Unreleased]
7
7
 
8
- [0.1.0] - 2016-01-08
8
+ ## [1.0.0] - 2016-07-13
9
+ ### Added
10
+ - metrics-events.rb: new plugin to track number of warnings/critical overtime
11
+ - check-aggregates.rb: Added support for new named aggregates introduced in Sensu 0.24
12
+ - check-aggregates.rb: Added misconfiguration check to guard against returning 'ok' status when provided parameters are insufficient
13
+ - check-aggregates.rb: Added new flag to honor stashed checks. If -i is supplied and the threshold alert is being used it will remove any checks that are stashed
14
+ - check-aggregates.rb: Added -k for https insecure mode
15
+ - check-aggregates.rb: Added config option to use environment var SENSU_API=hostname or SENSU_API_URL=hostname:port for -a
16
+ - check-aggregates.rb: Added ability to use node down count instead of percentages
17
+
18
+ ### Changed
19
+ - check-aggregates.rb: If summarize is set and the threshold output is being used the alert will contain the summarized results
20
+ - handler-sensu-deregister.rb: Overrode sensu-plugin's default `filter` method to make it a noop; deregistration events are one-time and shouldn't be filtered
21
+
22
+ ### Removed
23
+ - Remove Ruby 1.9.3 support; add Ruby 2.3.0 support
24
+
25
+ ## [0.1.0] - 2016-01-08
9
26
  ### Added
10
27
  - added sensu-deregister handler for deregistering a sensu client upon request (see https://github.com/sensu/sensu-build/pull/148 for example).
11
28
 
@@ -19,8 +36,11 @@ This CHANGELOG follows the format listed at [Keep A Changelog](http://keepachang
19
36
  ### Removed
20
37
  - Remove JSON gem dep that is not longer needed with Ruby 1.9+
21
38
 
22
- ## [0.0.1] - 2015-06-04
23
-
39
+ ## 0.0.1 - 2015-06-04
24
40
  ### Added
25
41
  - initial release
26
42
 
43
+ [Unreleased]: https://github.com/sensu-plugins/sensu-plugins-sensu/compare/1.0.0...HEAD
44
+ [1.0.0]: https://github.com/sensu-plugins/sensu-plugins-sensu/compare/0.1.0...1.0.0
45
+ [0.1.0]: https://github.com/sensu-plugins/sensu-plugins-sensu/compare/0.0.2...0.1.0
46
+ [0.0.2]: https://github.com/sensu-plugins/sensu-plugins-sensu/compare/0.0.1...0.0.2
data/README.md CHANGED
@@ -12,6 +12,7 @@
12
12
  * bin/check-aggregate.rb
13
13
  * bin/metrics-aggregate.rb
14
14
  * bin/metrics-delete-expired-stashes.rb
15
+ * bin/metrics-events.rb
15
16
  * bin/handler-sensu.rb
16
17
  * bin/handler-sensu-deregister.rb
17
18
 
@@ -21,7 +21,19 @@ class CheckAggregate < Sensu::Plugin::Check::CLI
21
21
  short: '-a URL',
22
22
  long: '--api URL',
23
23
  description: 'Sensu API URL',
24
- default: 'http://localhost:4567'
24
+ default: if ENV['SENSU_API']
25
+ ENV['SENSU_API'] + ':4567'
26
+ elsif ENV['SENSU_API_URL']
27
+ ENV['SENSU_API_URL']
28
+ else
29
+ 'http://localhost:4567'
30
+ end
31
+
32
+ option :insecure,
33
+ short: '-k',
34
+ boolean: true,
35
+ description: 'Enabling insecure connections',
36
+ default: false
25
37
 
26
38
  option :user,
27
39
  short: '-u USER',
@@ -66,35 +78,60 @@ class CheckAggregate < Sensu::Plugin::Check::CLI
66
78
  description: 'Summarize check result output',
67
79
  default: false
68
80
 
81
+ option :collect_output,
82
+ short: '-o',
83
+ long: '--output',
84
+ boolean: true,
85
+ description: 'Collects all non-ok outputs',
86
+ default: false
87
+
69
88
  option :warning,
70
89
  short: '-W PERCENT',
71
90
  long: '--warning PERCENT',
72
91
  description: 'PERCENT non-ok before warning',
73
92
  proc: proc(&:to_i)
74
93
 
94
+ option :warning_count,
95
+ long: '--warning_count INTEGER',
96
+ description: 'number of nodes in warning before warning',
97
+ proc: proc(&:to_i)
98
+
75
99
  option :critical,
76
100
  short: '-C PERCENT',
77
101
  long: '--critical PERCENT',
78
102
  description: 'PERCENT non-ok before critical',
79
103
  proc: proc(&:to_i)
80
104
 
105
+ option :critical_count,
106
+ long: '--critical_count INTEGER',
107
+ description: 'number of node in critical before critical',
108
+ proc: proc(&:to_i)
109
+
81
110
  option :pattern,
82
111
  short: '-P PATTERN',
83
112
  long: '--pattern PATTERN',
84
113
  description: 'A PATTERN to detect outliers'
85
114
 
115
+ option :honor_stash,
116
+ short: '-i',
117
+ long: '--honor-stash',
118
+ description: 'Checks that are stashed will be ignored from the aggregate',
119
+ boolean: true,
120
+ default: false
121
+
86
122
  option :message,
87
123
  short: '-M MESSAGE',
88
124
  long: '--message MESSAGE',
89
125
  description: 'A custom error MESSAGE'
90
126
 
91
127
  def api_request(resource)
128
+ verify_mode = OpenSSL::SSL::VERIFY_PEER
129
+ verify_mode = OpenSSL::SSL::VERIFY_NONE if config[:insecure]
92
130
  request = RestClient::Resource.new(config[:api] + resource, timeout: config[:timeout],
93
131
  user: config[:user],
94
- password: config[:password])
132
+ password: config[:password],
133
+ verify_ssl: verify_mode)
95
134
  JSON.parse(request.get, symbolize_names: true)
96
- rescue RestClient::ResourceNotFound
97
- warning "Resource not found: #{resource}"
98
135
  rescue Errno::ECONNREFUSED
99
136
  warning 'Connection refused'
100
137
  rescue RestClient::RequestFailed
@@ -107,15 +144,60 @@ class CheckAggregate < Sensu::Plugin::Check::CLI
107
144
  warning 'Sensu API returned invalid JSON'
108
145
  end
109
146
 
147
+ def honor_stash(aggregate)
148
+ aggregate[:results].delete_if do |entry|
149
+ begin
150
+ api_request("/stashes/silence/#{entry[:client]}/#{config[:check]}")
151
+ if entry[:status] == 0
152
+ aggregate[:ok] = aggregate[:ok] - 1
153
+ elsif entry[:status] == 1
154
+ aggregate[:warning] = aggregate[:warning] - 1
155
+ elsif entry[:status] == 2
156
+ aggregate[:critical] = aggregate[:critical] - 1
157
+ else
158
+ aggregate[:unknown] = aggregate[:unknown] - 1
159
+ end
160
+ aggregate[:total] = aggregate[:total] - 1
161
+ true
162
+ rescue RestClient::ResourceNotFound
163
+ false
164
+ end
165
+ end
166
+ aggregate
167
+ end
168
+
169
+ def collect_output(aggregate)
170
+ output = ''
171
+ aggregate[:results].each do |entry|
172
+ output << entry[:output] + "\n" unless entry[:status] == 0
173
+ end
174
+ aggregate[:outputs] = [output]
175
+ end
176
+
110
177
  def acquire_aggregate
178
+ if api_request('/info')[:sensu][:version].split('.')[1] >= '24'
179
+ named_aggregate_results
180
+ else
181
+ aggregate_results
182
+ end
183
+ end
184
+
185
+ def named_aggregate_results
186
+ results = api_request("/aggregates/#{config[:check]}?max_age=#{config[:age]}")[:results]
187
+ warning "No aggregates found in last #{config[:age]} seconds" if %w(ok warning critical unknown).all? { |x| results[x.to_sym] == 0 }
188
+ results
189
+ end
190
+
191
+ def aggregate_results
111
192
  uri = "/aggregates/#{config[:check]}"
112
193
  issued = api_request(uri + "?age=#{config[:age]}" + (config[:limit] ? "&limit=#{config[:limit]}" : ''))
113
194
  unless issued.empty?
114
195
  issued_sorted = issued.sort
115
196
  time = issued_sorted.pop
116
197
  unless time.nil?
117
- uri += "/#{time}"
118
- uri += '?summarize=output' if config[:summarize]
198
+ uri += "/#{time}?"
199
+ uri += '&summarize=output' if config[:summarize]
200
+ uri += '&results=true' if config[:honor_stash] || config[:collect_output]
119
201
  api_request(uri)
120
202
  else
121
203
  warning "No aggregates older than #{config[:age]} seconds"
@@ -127,8 +209,16 @@ class CheckAggregate < Sensu::Plugin::Check::CLI
127
209
 
128
210
  def compare_thresholds(aggregate)
129
211
  percent_non_zero = (100 - (aggregate[:ok].to_f / aggregate[:total].to_f) * 100).to_i
130
- message = config[:message] || 'Number of non-zero results exceeds threshold'
131
- message += " (#{percent_non_zero}% non-zero)"
212
+ message = ''
213
+ if aggregate[:outputs]
214
+ aggregate[:outputs].each do |output, count|
215
+ message << "\n" + output.to_s if count == 1
216
+ end
217
+ else
218
+ message = config[:message] || 'Number of non-zero results exceeds threshold'
219
+ message += " (#{percent_non_zero}% non-zero)"
220
+ end
221
+
132
222
  if config[:critical] && percent_non_zero >= config[:critical]
133
223
  critical message
134
224
  elsif config[:warning] && percent_non_zero >= config[:warning]
@@ -137,30 +227,57 @@ class CheckAggregate < Sensu::Plugin::Check::CLI
137
227
  end
138
228
 
139
229
  def compare_pattern(aggregate)
140
- if config[:summarize] && config[:pattern]
141
- regex = Regexp.new(config[:pattern])
142
- mappings = {}
143
- message = config[:message] || 'One of these is not like the others!'
144
- aggregate[:outputs].each do |output, _count|
145
- matched = regex.match(output.to_s)
146
- unless matched.nil?
147
- key = matched[1]
148
- value = matched[2..-1]
149
- if mappings.key?(key)
150
- unless mappings[key] == value # rubocop:disable Metrics/BlockNesting
151
- critical message + " (#{key})"
152
- end
230
+ regex = Regexp.new(config[:pattern])
231
+ mappings = {}
232
+ message = config[:message] || 'One of these is not like the others!'
233
+ aggregate[:outputs].each do |output, _count|
234
+ matched = regex.match(output.to_s)
235
+ unless matched.nil?
236
+ key = matched[1]
237
+ value = matched[2..-1]
238
+ if mappings.key?(key)
239
+ unless mappings[key] == value
240
+ critical message + " (#{key})"
153
241
  end
154
- mappings[key] = value
155
242
  end
243
+ mappings[key] = value
156
244
  end
157
245
  end
158
246
  end
159
247
 
248
+ def compare_thresholds_count(aggregate)
249
+ number_of_nodes_reporting_down = aggregate[:total].to_i - aggregate[:ok].to_i
250
+ message = ''
251
+ if aggregate[:outputs]
252
+ aggregate[:outputs].each do |output, count|
253
+ message << "\n" + output.to_s if count == 1
254
+ end
255
+ else
256
+ message = config[:message] || 'Number of nodes down exceeds threshold'
257
+ message += " (#{number_of_nodes_reporting_down} out of #{aggregate[:total]} nodes reporting not ok)"
258
+ end
259
+
260
+ if config[:critical_count] && number_of_nodes_reporting_down >= config[:critical_count]
261
+ critical message
262
+ elsif config[:warning_count] && number_of_nodes_reporting_down >= config[:warning_count]
263
+ warning message
264
+ end
265
+ end
266
+
160
267
  def run
268
+ threshold = config[:critical] || config[:warning]
269
+ threshold_count = config[:critical_count] || config[:warning_count]
270
+ pattern = config[:summarize] && config[:pattern]
271
+ critical 'Misconfiguration: critical || warning || (summarize && pattern) must be set' unless threshold || pattern || threshold_count
272
+
161
273
  aggregate = acquire_aggregate
162
- compare_thresholds(aggregate)
163
- compare_pattern(aggregate)
274
+ aggregate = honor_stash(aggregate) if config[:honor_stash]
275
+ puts aggregate
276
+ aggregate = collect_output(aggregate) if config[:collect_output]
277
+ compare_thresholds(aggregate) if threshold
278
+ compare_pattern(aggregate) if pattern
279
+ compare_thresholds_count(aggregate) if threshold_count
280
+
164
281
  ok 'Aggregate looks GOOD'
165
282
  end
166
283
  end
@@ -25,4 +25,8 @@ class Deregister < Sensu::Handler
25
25
  puts "#{res}: Completely unsure of what happened!"
26
26
  end
27
27
  end
28
+
29
+ def filter
30
+ # override filter method to disable filtering of deregistration events
31
+ end
28
32
  end
data/bin/handler-sensu.rb CHANGED
@@ -112,14 +112,13 @@ class Remediator < Sensu::Handler
112
112
  # Check for remediations matching the current occurrence count
113
113
  trigger = false
114
114
  (conditions['occurrences'] || []).each do |value|
115
- trigger = case
116
- when value.is_a?(Integer) && occurrences == value then true
117
- when value.to_s =~ /^\d+$/ && occurrences == $LAST_MATCH_INFO.to_a.first.to_i then true
115
+ trigger = if value.is_a?(Integer) && occurrences == value then true
116
+ elsif value.to_s =~ /^\d+$/ && occurrences == $LAST_MATCH_INFO.to_a.first.to_i then true
118
117
  # #YELLOW
119
- when value.to_s =~ /^(\d+)-(\d+)$/ && Range.new($LAST_MATCH_INFO.to_a[1].to_i, $LAST_MATCH_INFO.to_a[2].to_i).to_a.include?(occurrences) then true # rubocop:disable LineLength
120
- when value.to_s.match(/^(\d+)\+$/) && Range.new($LAST_MATCH_INFO.to_a[1].to_i, 9999).include?(occurrences) then true
118
+ elsif value.to_s =~ /^(\d+)-(\d+)$/ && Range.new($LAST_MATCH_INFO.to_a[1].to_i, $LAST_MATCH_INFO.to_a[2].to_i).to_a.include?(occurrences) then true # rubocop:disable LineLength
119
+ elsif value.to_s.match(/^(\d+)\+$/) && Range.new($LAST_MATCH_INFO.to_a[1].to_i, 9999).include?(occurrences) then true
121
120
  else false
122
- end
121
+ end
123
122
  break if trigger
124
123
  end
125
124
 
@@ -17,7 +17,11 @@ require 'socket'
17
17
  include Sensu::Plugin::Utils
18
18
 
19
19
  class CheckSilenced < Sensu::Plugin::Metric::CLI::Graphite
20
- default_host = settings['api']['host'] rescue 'localhost' # rubocop:disable RescueModifier
20
+ default_host = begin
21
+ settings['api']['host']
22
+ rescue
23
+ 'localhost'
24
+ end
21
25
 
22
26
  option :host,
23
27
  short: '-h HOST',
@@ -57,7 +61,12 @@ class CheckSilenced < Sensu::Plugin::Metric::CLI::Graphite
57
61
 
58
62
  def api
59
63
  endpoint = URI.parse("http://#{@config[:host]}:#{@config[:port]}")
60
- @config[:use_ssl?] ? endpoint.scheme = 'https' : endpoint.scheme = 'http'
64
+ endpoint.scheme = if @config[:use_ssl?]
65
+ 'https'
66
+ else
67
+ 'http'
68
+ end
69
+ endpoint.scheme = (@config[:use_ssl?] ? 'https' : 'http')
61
70
  @api ||= RestClient::Resource.new(endpoint, timeout: 45)
62
71
  end
63
72
 
@@ -65,7 +74,7 @@ class CheckSilenced < Sensu::Plugin::Metric::CLI::Graphite
65
74
  all_stashes = JSON.parse(api['/stashes'].get)
66
75
  filtered_stashes = []
67
76
  all_stashes.each do |stash|
68
- filtered_stashes << stash if stash['path'].match(/^#{@config[:filter]}\/.*/)
77
+ filtered_stashes << stash if stash['path'] =~ /^#{@config[:filter]}\/.*/
69
78
  end
70
79
  return filtered_stashes
71
80
  rescue Errno::ECONNREFUSED
@@ -0,0 +1,115 @@
1
+ #!/usr/bin/env ruby
2
+ #
3
+ # Event Metrics
4
+ #
5
+ # Use the /events API to collect events and their severity.
6
+ #
7
+ # sensu.events.total 2 1234535436
8
+ # sensu.events.warning 0 1234535436
9
+ # sensu.events.critical 0 1234535436
10
+ #
11
+ # ===
12
+ #
13
+ # Authors
14
+ # ===
15
+ # Bertrand Roussel, @CoRfr
16
+ #
17
+ # Copyright 2016 Sierra Wireless, Inc.
18
+ #
19
+ # Released under the same terms as Sensu (the MIT license); see
20
+ # LICENSE for details.
21
+
22
+ require 'sensu-plugin/metric/cli'
23
+ require 'rest-client'
24
+ require 'json'
25
+
26
+ class AggregateMetrics < Sensu::Plugin::Metric::CLI::Graphite
27
+ option :api,
28
+ short: '-a URL',
29
+ long: '--api URL',
30
+ description: 'Sensu API URL',
31
+ default: 'http://localhost:4567'
32
+
33
+ option :user,
34
+ short: '-u USER',
35
+ long: '--user USER',
36
+ description: 'Sensu API USER'
37
+
38
+ option :password,
39
+ short: '-p PASSOWRD',
40
+ long: '--password PASSWORD',
41
+ description: 'Sensu API PASSWORD'
42
+
43
+ option :timeout,
44
+ short: '-t SECONDS',
45
+ long: '--timeout SECONDS',
46
+ description: 'Sensu API connection timeout in SECONDS',
47
+ proc: proc(&:to_i),
48
+ default: 30
49
+
50
+ option :scheme,
51
+ description: 'Metric naming scheme',
52
+ long: '--scheme SCHEME',
53
+ default: "#{Socket.gethostname}.sensu.events"
54
+
55
+ option :debug,
56
+ long: '--debug',
57
+ description: 'Verbose output'
58
+
59
+ def api_request(resource)
60
+ request = RestClient::Resource.new(config[:api] + resource, timeout: config[:timeout],
61
+ user: config[:user],
62
+ password: config[:password])
63
+ JSON.parse(request.get, symbolize_names: true)
64
+ rescue RestClient::ResourceNotFound
65
+ warning "Resource not found: #{resource}"
66
+ rescue Errno::ECONNREFUSED
67
+ warning 'Connection refused'
68
+ rescue RestClient::RequestFailed
69
+ warning 'Request failed'
70
+ rescue RestClient::RequestTimeout
71
+ warning 'Connection timed out'
72
+ rescue RestClient::Unauthorized
73
+ warning 'Missing or incorrect Sensu API credentials'
74
+ rescue JSON::ParserError
75
+ warning 'Sensu API returned invalid JSON'
76
+ end
77
+
78
+ def acquire_events
79
+ uri = '/events'
80
+ checks = api_request(uri)
81
+ puts "Events: #{checks.inspect}" if config[:debug]
82
+ checks
83
+ end
84
+
85
+ def run
86
+ timestamp = Time.now.to_i
87
+
88
+ status_count = {}
89
+ status_count[1] = 0
90
+ status_count[2] = 0
91
+
92
+ status_names = {}
93
+ status_names[1] = 'warning'
94
+ status_names[2] = 'critical'
95
+
96
+ total_count = 0
97
+ acquire_events.each do |event|
98
+ total_count += 1
99
+ status_count[event[:check][:status]] ||= 0
100
+ status_count[event[:check][:status]] += 1
101
+ end
102
+
103
+ output "#{config[:scheme]}.total", total_count, timestamp
104
+ status_count.each do |status, count|
105
+ name = status_names[status]
106
+ if name
107
+ output "#{config[:scheme]}.#{name}", count, timestamp
108
+ else
109
+ output "#{config[:scheme]}.status.#{status}", count, timestamp
110
+ end
111
+ end
112
+
113
+ ok
114
+ end
115
+ end
@@ -1,8 +1,8 @@
1
1
  module SensuPluginsSensu
2
2
  # This defines the version of the gem
3
3
  module Version
4
- MAJOR = 0
5
- MINOR = 1
4
+ MAJOR = 1
5
+ MINOR = 0
6
6
  PATCH = 0
7
7
 
8
8
  VER_STRING = [MAJOR, MINOR, PATCH].compact.join('.')
metadata CHANGED
@@ -1,51 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sensu-plugins-sensu
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sensu-Plugins and contributors
8
8
  autorequire:
9
9
  bindir: bin
10
- cert_chain:
11
- - |
12
- -----BEGIN CERTIFICATE-----
13
- MIIDgDCCAmigAwIBAgIBATANBgkqhkiG9w0BAQUFADBDMRIwEAYDVQQDDAltYXR0
14
- am9uZXMxGDAWBgoJkiaJk/IsZAEZFgh5aWVsZGJvdDETMBEGCgmSJomT8ixkARkW
15
- A2NvbTAeFw0xNTAxMjgyMTAyNTFaFw0xNjAxMjgyMTAyNTFaMEMxEjAQBgNVBAMM
16
- CW1hdHRqb25lczEYMBYGCgmSJomT8ixkARkWCHlpZWxkYm90MRMwEQYKCZImiZPy
17
- LGQBGRYDY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAyTSzVYnO
18
- CLgyrIyT1mBQakArQyW8xhi6MlDqyzXHJGeERT790U6EgoBVeS4XoK0ptFZNR8Tf
19
- zko0w+Nv47TarSCgkPOaxY+mxWnAVR10dOmfeLr7huiMyps+YD56/EF2FqQ3jf/+
20
- qohENfKD91qy1ieEy+Fn7Pf74ltbNKUdkb9a9eFXQ0DQ4ip5vik7DzjQkUTj4lca
21
- k6ArwnmHX4YDhZoYtrQJ8jVktN0/+NtA40M5qkCYHNe5tUW25b/tKVYuioxG6b2Z
22
- oIzaZxRLxf6HVAWpCVRT/F5+/yjigkX4u++eYacfLGleXQzoK7BL65vHGMJygWEE
23
- 0TKGqFOrl/L0AQIDAQABo38wfTAJBgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNV
24
- HQ4EFgQUEf6a8Td7MrSZc8ImbLFZAENPbz0wIQYDVR0RBBowGIEWbWF0dGpvbmVz
25
- QHlpZWxkYm90LmNvbTAhBgNVHRIEGjAYgRZtYXR0am9uZXNAeWllbGRib3QuY29t
26
- MA0GCSqGSIb3DQEBBQUAA4IBAQBbzXAYA3BVGw8DZ0YYoY1VHPNEcH5qPIApmHO8
27
- rvSmuUT0yMEi7u00H/5uHRFf4LleGT/+sTdyXKsNPGT9kdRuQEgwi+vf7Zfvd8aX
28
- UF/+4VkEYf/8rV8Ere6u2QaWPgApdMV6JjKr1fAwCTd8AuGXNaWItiPPMseSQzLJ
29
- JKP4hVvbc1d+oS925B1lcBiqn2aYvElbyNAVmQPywNNqkWmvtlqj9ZVJfV5HQLdu
30
- 8sHuVruarogxxKPBzlL2is4EUb6oN/RdpGx2l4254+nyR+abg//Ed27Ym0PkB4lk
31
- HP0m8WSjZmFr109pE/sVsM5jtOCvogyujQOjNVGN4gz1wwPr
32
- -----END CERTIFICATE-----
33
- date: 2016-01-08 00:00:00.000000000 Z
10
+ cert_chain: []
11
+ date: 2016-07-14 00:00:00.000000000 Z
34
12
  dependencies:
35
13
  - !ruby/object:Gem::Dependency
36
14
  name: sensu-plugin
37
15
  requirement: !ruby/object:Gem::Requirement
38
16
  requirements:
39
- - - '='
17
+ - - "~>"
40
18
  - !ruby/object:Gem::Version
41
- version: 1.2.0
19
+ version: '1.2'
42
20
  type: :runtime
43
21
  prerelease: false
44
22
  version_requirements: !ruby/object:Gem::Requirement
45
23
  requirements:
46
- - - '='
24
+ - - "~>"
47
25
  - !ruby/object:Gem::Version
48
- version: 1.2.0
26
+ version: '1.2'
49
27
  - !ruby/object:Gem::Dependency
50
28
  name: rest-client
51
29
  requirement: !ruby/object:Gem::Requirement
@@ -134,16 +112,16 @@ dependencies:
134
112
  name: rubocop
135
113
  requirement: !ruby/object:Gem::Requirement
136
114
  requirements:
137
- - - '='
115
+ - - "~>"
138
116
  - !ruby/object:Gem::Version
139
- version: 0.32.1
117
+ version: 0.40.0
140
118
  type: :development
141
119
  prerelease: false
142
120
  version_requirements: !ruby/object:Gem::Requirement
143
121
  requirements:
144
- - - '='
122
+ - - "~>"
145
123
  - !ruby/object:Gem::Version
146
- version: 0.32.1
124
+ version: 0.40.0
147
125
  - !ruby/object:Gem::Dependency
148
126
  name: rspec
149
127
  requirement: !ruby/object:Gem::Requirement
@@ -203,11 +181,12 @@ dependencies:
203
181
  description: This plugin provides monitoring and metrics for Sensu.
204
182
  email: "<sensu-users@googlegroups.com>"
205
183
  executables:
206
- - metrics-delete-expired-stashes.rb
207
- - metrics-aggregate.rb
208
- - handler-sensu.rb
209
- - handler-sensu-deregister.rb
210
184
  - check-aggregate.rb
185
+ - handler-sensu-deregister.rb
186
+ - handler-sensu.rb
187
+ - metrics-aggregate.rb
188
+ - metrics-delete-expired-stashes.rb
189
+ - metrics-events.rb
211
190
  extensions: []
212
191
  extra_rdoc_files: []
213
192
  files:
@@ -219,6 +198,7 @@ files:
219
198
  - bin/handler-sensu.rb
220
199
  - bin/metrics-aggregate.rb
221
200
  - bin/metrics-delete-expired-stashes.rb
201
+ - bin/metrics-events.rb
222
202
  - lib/sensu-plugins-sensu.rb
223
203
  - lib/sensu-plugins-sensu/version.rb
224
204
  homepage: https://github.com/sensu-plugins/sensu-plugins-sensu
@@ -239,7 +219,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
239
219
  requirements:
240
220
  - - ">="
241
221
  - !ruby/object:Gem::Version
242
- version: 1.9.3
222
+ version: 2.0.0
243
223
  required_rubygems_version: !ruby/object:Gem::Requirement
244
224
  requirements:
245
225
  - - ">="
@@ -247,8 +227,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
247
227
  version: '0'
248
228
  requirements: []
249
229
  rubyforge_project:
250
- rubygems_version: 2.4.8
230
+ rubygems_version: 2.5.1
251
231
  signing_key:
252
232
  specification_version: 4
253
233
  summary: Sensu plugins for sensu
254
234
  test_files: []
235
+ has_rdoc:
checksums.yaml.gz.sig DELETED
@@ -1,2 +0,0 @@
1
-
2
- �f�5��c��/�:��"?�bp�)��h;�&���sP5��@1~������`ty�"���@iXVj#�A�V�{�C�8�uG-�Ơ"��T�m Nщ�ٛ���u䒚b�X���+1P�z6C�,�G�)ɂ�j�{�h���X6@AQ&�:�@-�N�/���2��%!��[��@$�DG�`��sӿ�=�:%����&Cd%��f��� ��x���;ҹc6U ~�(6c�b����!�� ������l�
data.tar.gz.sig DELETED
Binary file
metadata.gz.sig DELETED
@@ -1 +0,0 @@
1
- օa���|��pR��X�sQ>�C�^cS7�jՒⓆD?z�� dɹ�N��Ya�(��ƼN�v��'��3�|�_3�GB\�k��� j�5i�7����XZl:ubtAg�BR�����,�>�~;r��2�ה0"�"�Rf��2:��罊kz�7�i��I�p��� xTVֻ" n���ٍw6t�J��FѶKn��Nߥz��"�qPuY��e!��ia`ÐS!`x��� ����Z���>�