sensu-plugins-beanstalk 1.1.0 → 1.2.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: 0e01a54a1e7214db903ce022b8fecc79a0f890e9
4
- data.tar.gz: e8c17e3d7bc5d6d960e54f8dd1663363c6fd79c9
3
+ metadata.gz: 54f73f6a0282dfe33562f5eceedeafa7e8431a62
4
+ data.tar.gz: 7c4aaf8616caad47fb7b314e5b0a014a4afc576f
5
5
  SHA512:
6
- metadata.gz: 2a6b8670534588ed98e1b3760c7c3d2b940c6c50d7489b0acbc9be8c68aa9df567af09e872c449e6bda2cd29105c4f61efa1a4b8570b80c9a31a563358850a01
7
- data.tar.gz: 5191aa870c690135060604201efb19c167f9d7f11b7923845d4093c3f5b01cf179b5432e9809a07ec9662bf0702ac4ab79087eeea4eb773184ea23768fb0bd78
6
+ metadata.gz: ad7244f2cd7b08d82e41f0d0ab0e82590591697487df932479c667fff42f382708fde3b8faae3a2fbb0e33e48b45878b35ff0b5db532bd7ab22734d8615743d4
7
+ data.tar.gz: 4c9f287845e72f29adc1a2e1288af793aec2eb583a1e4cba2fb2259a5dbcf4d00b6c3bdd0f3758376a0925c76ab11df6cf47fb3b459385579eb0f0a6c20fc2c1
data/CHANGELOG.md CHANGED
@@ -5,6 +5,11 @@ This CHANGELOG follows the format listed at [Keep A Changelog](http://keepachang
5
5
 
6
6
  ## [Unreleased]
7
7
 
8
+ ## [1.2.0] - 2017-10-22
9
+ ### Added
10
+ - real tests with serverspec (@anakinj)
11
+ - check-beanstalkd, ignore missing queues by default. Behavior controlled by --alert-on-missing parameter. (@anakinj)
12
+
8
13
  ## [1.1.0] - 2017-08-15
9
14
  ### Added
10
15
  - Option to get the age of a item in the tubes. add age to the --stats (@derkgort)
@@ -38,6 +43,7 @@ This CHANGELOG follows the format listed at [Keep A Changelog](http://keepachang
38
43
  - initial release
39
44
 
40
45
  [Unreleased]: https://github.com/sensu-plugins/sensu-plugins-beanstalk/compare/1.1.0...HEAD
46
+ [1.2.0]: https://github.com/sensu-plugins/sensu-plugins-beanstalk/compare/1.1.0...1.2.0
41
47
  [1.1.0]: https://github.com/sensu-plugins/sensu-plugins-beanstalk/compare/1.0.0...1.1.0
42
48
  [1.0.0]: https://github.com/sensu-plugins/sensu-plugins-beanstalk/compare/0.0.4...1.0.0
43
49
  [0.0.4]: https://github.com/sensu-plugins/sensu-plugins-beanstalk/compare/0.0.3...0.0.4
@@ -54,6 +54,14 @@ class BeanstalkdQueuesStatus < Sensu::Plugin::Check::CLI
54
54
  long: '--port PORT',
55
55
  default: '11300'
56
56
 
57
+ option :alert_on_missing,
58
+ description: 'alert type when tube is missing',
59
+ short: '-a TYPE',
60
+ long: '--alert-on-missing TYPE',
61
+ proc: proc { |value| value.to_sym },
62
+ in: [:critical, :warning, :ignore],
63
+ default: :ignore
64
+
57
65
  option :ready,
58
66
  description: 'ready tasks WARNING/CRITICAL thresholds',
59
67
  short: '-r W,C',
@@ -85,44 +93,65 @@ class BeanstalkdQueuesStatus < Sensu::Plugin::Check::CLI
85
93
  end
86
94
 
87
95
  def run
88
- stats = acquire_beanstalkd_connection.tubes[config[:tube].to_s].stats
96
+ warns, crits, msg = check_queues(tube_stats)
89
97
  message 'All queues are healthy'
90
98
 
91
- warns, crits, msg = check_queues(stats)
92
- msg.join("\n")
93
-
94
- if crits.size > 0 # rubocop:disable Style/ZeroLengthPredicate
99
+ unless crits.empty?
95
100
  message msg
96
101
  critical
97
102
  end
98
103
 
99
- if warns.size > 0 # rubocop:disable Style/ZeroLengthPredicate
104
+ unless warns.empty?
100
105
  message msg
101
106
  warning
102
107
  end
108
+
103
109
  ok
104
110
  end
105
111
 
112
+ JOB_STATES = [:ready, :urgent, :buried].freeze
113
+
106
114
  def check_queues(stats)
107
115
  msg = []
108
116
  crits = {}
109
117
  warns = {}
110
118
 
111
- [:ready, :urgent, :buried].each do |task|
112
- tasks = stats.send("current_jobs_#{task}".to_sym)
119
+ JOB_STATES.each do |job_state|
120
+ jobs = stats.send("current_jobs_#{job_state}".to_sym)
113
121
 
114
- if tasks > config[task][1]
115
- crits[task] = tasks
116
- msg << task.to_s + " queue has #{tasks} items"
122
+ if jobs > config[job_state][1]
123
+ crits[job_state] = jobs
124
+ msg << job_state.to_s + " queue has #{jobs} items"
117
125
  next
118
126
  end
119
127
 
120
- if tasks > config[task][0]
121
- warns[task] = tasks
122
- msg << task.to_s + " queue has #{tasks} items"
128
+ if jobs > config[job_state][0]
129
+ warns[job_state] = jobs
130
+ msg << job_state.to_s + " queue has #{jobs} items"
123
131
  end
124
132
  end
125
133
 
126
134
  [warns, crits, msg]
127
135
  end
136
+
137
+ def tube_stats
138
+ acquire_beanstalkd_connection.tubes[config[:tube].to_s].stats
139
+ rescue Beaneater::NotFoundError
140
+ case config[:alert_on_missing]
141
+ when :warning, :critical
142
+ send(config[:alert_on_missing], "Tube #{config[:tube]} is missing")
143
+ else
144
+ empty_queue_stats
145
+ end
146
+ end
147
+
148
+ def empty_queue_stats
149
+ stats = OpenStruct.new
150
+
151
+ JOB_STATES.each do |job_state|
152
+ stats.send("current_jobs_#{job_state}=", 0)
153
+ end
154
+
155
+ stats
156
+ end
128
157
  end
@@ -1,7 +1,7 @@
1
1
  module SensuPluginsBeanstalk
2
2
  module Version
3
3
  MAJOR = 1
4
- MINOR = 1
4
+ MINOR = 2
5
5
  PATCH = 0
6
6
 
7
7
  VER_STRING = [MAJOR, MINOR, PATCH].compact.join('.')
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sensu-plugins-beanstalk
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.2.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: 2017-08-16 00:00:00.000000000 Z
11
+ date: 2017-10-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: sensu-plugin
@@ -178,16 +178,72 @@ dependencies:
178
178
  - - "~>"
179
179
  - !ruby/object:Gem::Version
180
180
  version: '0.8'
181
+ - !ruby/object:Gem::Dependency
182
+ name: serverspec
183
+ requirement: !ruby/object:Gem::Requirement
184
+ requirements:
185
+ - - "~>"
186
+ - !ruby/object:Gem::Version
187
+ version: 2.36.1
188
+ type: :development
189
+ prerelease: false
190
+ version_requirements: !ruby/object:Gem::Requirement
191
+ requirements:
192
+ - - "~>"
193
+ - !ruby/object:Gem::Version
194
+ version: 2.36.1
195
+ - !ruby/object:Gem::Dependency
196
+ name: test-kitchen
197
+ requirement: !ruby/object:Gem::Requirement
198
+ requirements:
199
+ - - "~>"
200
+ - !ruby/object:Gem::Version
201
+ version: '1.6'
202
+ type: :development
203
+ prerelease: false
204
+ version_requirements: !ruby/object:Gem::Requirement
205
+ requirements:
206
+ - - "~>"
207
+ - !ruby/object:Gem::Version
208
+ version: '1.6'
209
+ - !ruby/object:Gem::Dependency
210
+ name: kitchen-docker
211
+ requirement: !ruby/object:Gem::Requirement
212
+ requirements:
213
+ - - "~>"
214
+ - !ruby/object:Gem::Version
215
+ version: '2.6'
216
+ type: :development
217
+ prerelease: false
218
+ version_requirements: !ruby/object:Gem::Requirement
219
+ requirements:
220
+ - - "~>"
221
+ - !ruby/object:Gem::Version
222
+ version: '2.6'
223
+ - !ruby/object:Gem::Dependency
224
+ name: kitchen-localhost
225
+ requirement: !ruby/object:Gem::Requirement
226
+ requirements:
227
+ - - "~>"
228
+ - !ruby/object:Gem::Version
229
+ version: '0.3'
230
+ type: :development
231
+ prerelease: false
232
+ version_requirements: !ruby/object:Gem::Requirement
233
+ requirements:
234
+ - - "~>"
235
+ - !ruby/object:Gem::Version
236
+ version: '0.3'
181
237
  description: Sensu plugins for beanstalk
182
238
  email: "<sensu-users@googlegroups.com>"
183
239
  executables:
184
- - check-beanstalk-jobs.rb
185
- - check-beanstalk-statistic.rb
186
240
  - check-beanstalk-watchers-to-buried.rb
241
+ - check-beanstalk-jobs.rb
187
242
  - check-beanstalk-watchers.rb
243
+ - check-beanstalk-statistic.rb
188
244
  - check-beanstalkd.rb
189
- - metrics-beanstalkd-tubes.rb
190
245
  - metrics-beanstalkd.rb
246
+ - metrics-beanstalkd-tubes.rb
191
247
  extensions: []
192
248
  extra_rdoc_files: []
193
249
  files:
@@ -229,7 +285,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
229
285
  version: '0'
230
286
  requirements: []
231
287
  rubyforge_project:
232
- rubygems_version: 2.4.5
288
+ rubygems_version: 2.6.14
233
289
  signing_key:
234
290
  specification_version: 4
235
291
  summary: Sensu plugins for beanstalk