sensu-plugins-beanstalk 0.0.4 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,7 @@
1
1
  ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- NTE5YTgyNGJmYzQ3ZGVlZjUzNGEzYzhiYzg3NDlmOTUwNDdhMzg5OA==
5
- data.tar.gz: !binary |-
6
- NWFhNWU4NmYwNDQ3NWI3NmZiYmFhODViZmE0MzA1YTVmZGNhNDJhMw==
2
+ SHA1:
3
+ metadata.gz: 1064f7505132c9829ec4536e4d82eeafa543722b
4
+ data.tar.gz: ef7ea87d449bc73670a7c8d5a8959e3978ca7503
7
5
  SHA512:
8
- metadata.gz: !binary |-
9
- YjU0Y2NjYjdiYmU1NmE5MDRiYzg5ZTBlZmU4MTczMGZkZGY3ZTE4NWI0MGM0
10
- NjZlNTE5NTBiMDYxNDllZGU3MTY2NTY0OTgxMDBjMGZhZDBhNWVkMmVjZmQy
11
- M2Y4MDgxNTA1MTAwZmRlN2MxNjE3NDM2OGU4MzYxZjNmMzdiOWU=
12
- data.tar.gz: !binary |-
13
- YzM1NjMwY2Q2ZGQwNDkzYWMzNDRmYTMxYzAxNWQ4MzBiMzJkZTVmNTNiMDJh
14
- MDgwZThkOGJlNDZmYWI3ZGJmNjJhZTQ5NjFlNzE3NjUwNmQ3NDE2YmU5MzAy
15
- MmE3MzJjMDY3NDU4Nzk5OTY3YzczMmRkNjc3OGQ3OTY5MWE5N2U=
6
+ metadata.gz: 916eea21507eb1d3249285b72f439079a6a61f318f43b26ea8bb439a866cbdda86c93c3ca116054b7d34775e75c6d210355b44eb25f060cd662687e69eb81bdc
7
+ data.tar.gz: 5d7d5b71bf3fb63261ab53c1f60b741e5977996dbc954d64fb45857a8be1a64b001e106b86edbdb6034d97ad17675914ff278b8ee01ffb1596713d13864f7b0b
data/CHANGELOG.md CHANGED
@@ -1,12 +1,21 @@
1
- #Change Log
1
+ # Change Log
2
2
  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
+
8
+ ## [1.0.0] - 2017-07-14
9
+ ### Added
10
+ - metrics-beanstalkd-tubes, get metrics from individual tubes
11
+ - Add testing for Ruby 2.3.0
12
+ - Add testing for Ruby 2.4.1
13
+
14
+ ### Breaking Changes
15
+ - Remove support for Ruby 1.9.3
7
16
 
8
17
  ## [0.0.4] - 2016-02-18
9
- ### Fixed
18
+ ### Fixed
10
19
  - cert issue
11
20
 
12
21
  ## [0.0.3] - 2015-07-14
@@ -20,11 +29,12 @@ This CHANGELOG follows the format listed at [Keep A Changelog](http://keepachang
20
29
  ### Changed
21
30
  - removed cruft from /lib
22
31
 
23
- ## 0.0.1 - 2015-04-30
32
+ ## [0.0.1] - 2015-04-30
24
33
  ### Added
25
34
  - initial release
26
35
 
27
- [unreleased]: https://github.com/sensu-plugins/sensu-plugins-beanstalk/compare/0.0.4...HEAD
36
+ [Unreleased]: https://github.com/sensu-plugins/sensu-plugins-beanstalk/compare/1.0.0...HEAD
37
+ [1.0.0]: https://github.com/sensu-plugins/sensu-plugins-beanstalk/compare/0.0.4...1.0.0
28
38
  [0.0.4]: https://github.com/sensu-plugins/sensu-plugins-beanstalk/compare/0.0.3...0.0.4
29
39
  [0.0.3]: https://github.com/sensu-plugins/sensu-plugins-beanstalk/compare/0.0.2...0.0.3
30
- [0.0.2]: https://github.com/sensu-plugins/sensu-plugins-beanstalk/compare/0.0.1...0.0.2
40
+ [0.0.2]: https://github.com/sensu-plugins/sensu-plugins-beanstalk/compare/0.0.1...0.0.2
data/README.md CHANGED
@@ -11,6 +11,7 @@
11
11
  ## Files
12
12
 
13
13
  * bin/metrics-beanstalkd.rb
14
+ * bin/metrics-beanstalkd-tube.rb
14
15
  * bin/check-beanstalk-jobs.rb
15
16
  * bin/check-beanstalk-watchers.rb
16
17
  * bin/check-beanstalk-watchers-to-buried.rb
@@ -0,0 +1,102 @@
1
+ #! /usr/bin/env ruby
2
+ #
3
+ # beanstalkd-metrics-tubes
4
+ #
5
+ # DESCRIPTION:
6
+ # This plugin checks the beanstalkd tube-stats, using the beaneater gem
7
+ #
8
+ # OUTPUT:
9
+ # metric-data
10
+ #
11
+ # PLATFORMS:
12
+ # Linux
13
+ #
14
+ # DEPENDENCIES:
15
+ # gem: beaneater
16
+ # gem: sensu-plugin
17
+ #
18
+ # USAGE:
19
+ #
20
+ # NOTES:
21
+ #
22
+ # LICENSE:
23
+ # Joakim Antman <antmanj@gmail.com>
24
+ # Released under the same terms as Sensu (the MIT license); see LICENSE
25
+ # for details.
26
+ #
27
+
28
+ require 'sensu-plugin/metric/cli'
29
+ require 'beaneater'
30
+
31
+ #
32
+ # Collects beanstalk tube metrics
33
+ #
34
+ class BeanstalkdMetrics < Sensu::Plugin::Metric::CLI::Graphite
35
+ option :host,
36
+ description: 'beanstalkd server',
37
+ short: '-h HOST',
38
+ long: '--host HOST',
39
+ default: 'localhost'
40
+
41
+ option :port,
42
+ description: 'beanstalkd server port',
43
+ short: '-p PORT',
44
+ long: '--port PORT',
45
+ proc: proc(&:to_i),
46
+ default: 11_300
47
+
48
+ option :scheme,
49
+ description: 'Metric naming scheme, text to prepend to metric',
50
+ short: '-s SCHEME',
51
+ long: '--scheme SCHEME',
52
+ default: "#{Socket.gethostname}.beanstalkd"
53
+
54
+ option :tubes,
55
+ description: 'Comma separate list of tubes to collect metrics from',
56
+ short: '-t TUBES',
57
+ long: '--tubes TUBES',
58
+ default: '*'
59
+
60
+ option :stats,
61
+ description: 'Comma separate list of tube-stats to collect',
62
+ long: '--stats STATS',
63
+ default: '*'
64
+
65
+ def run
66
+ tubes.each do |tube|
67
+ output_stats(tube)
68
+ end
69
+ ok
70
+ end
71
+
72
+ private
73
+
74
+ INGORED_KEYS = ['name'].freeze
75
+
76
+ def output_stats(tube)
77
+ stats = tube.stats
78
+ stats.keys.sort.each do |key|
79
+ next unless matches_filter?(:stats, key)
80
+ next if INGORED_KEYS.include?(key)
81
+ output "#{config[:scheme]}.#{tube.name}.#{key}", stats[key]
82
+ end
83
+ end
84
+
85
+ def tubes
86
+ connection.tubes.all.select { |tube| matches_filter?(:tubes, tube.name) }
87
+ end
88
+
89
+ def matches_filter?(key, value)
90
+ @tube_filters ||= {}
91
+ unless @tube_filters.key?(key)
92
+ @tube_filters[key] = Array(config[key].split(',').map(&:strip))
93
+ end
94
+ @tube_filters[key].any? { |filter| File.fnmatch?(filter, value.to_s) }
95
+ end
96
+
97
+ def connection
98
+ @conn ||= Beaneater::Pool.new(["#{config[:host]}:#{config[:port]}"])
99
+ rescue => e
100
+ warning "could not connect to beanstalkd: #{e}"
101
+ end
102
+ end
@@ -1,8 +1,8 @@
1
1
  module SensuPluginsBeanstalk
2
2
  module Version
3
- MAJOR = 0
3
+ MAJOR = 1
4
4
  MINOR = 0
5
- PATCH = 4
5
+ PATCH = 0
6
6
 
7
7
  VER_STRING = [MAJOR, MINOR, PATCH].compact.join('.')
8
8
  end
metadata CHANGED
@@ -1,27 +1,27 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sensu-plugins-beanstalk
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
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
10
  cert_chain: []
11
- date: 2016-02-18 00:00:00.000000000 Z
11
+ date: 2017-07-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: sensu-plugin
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ~>
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
19
  version: '1.2'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ~>
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: '1.2'
27
27
  - !ruby/object:Gem::Dependency
@@ -56,136 +56,137 @@ dependencies:
56
56
  name: bundler
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ~>
59
+ - - "~>"
60
60
  - !ruby/object:Gem::Version
61
61
  version: '1.7'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ~>
66
+ - - "~>"
67
67
  - !ruby/object:Gem::Version
68
68
  version: '1.7'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: codeclimate-test-reporter
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - ~>
73
+ - - "~>"
74
74
  - !ruby/object:Gem::Version
75
75
  version: '0.4'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - ~>
80
+ - - "~>"
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0.4'
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: github-markup
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - ~>
87
+ - - "~>"
88
88
  - !ruby/object:Gem::Version
89
89
  version: '1.3'
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - ~>
94
+ - - "~>"
95
95
  - !ruby/object:Gem::Version
96
96
  version: '1.3'
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: pry
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
- - - ~>
101
+ - - "~>"
102
102
  - !ruby/object:Gem::Version
103
103
  version: '0.10'
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
- - - ~>
108
+ - - "~>"
109
109
  - !ruby/object:Gem::Version
110
110
  version: '0.10'
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: rake
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
- - - ~>
115
+ - - "~>"
116
116
  - !ruby/object:Gem::Version
117
117
  version: '10.5'
118
118
  type: :development
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
- - - ~>
122
+ - - "~>"
123
123
  - !ruby/object:Gem::Version
124
124
  version: '10.5'
125
125
  - !ruby/object:Gem::Dependency
126
126
  name: redcarpet
127
127
  requirement: !ruby/object:Gem::Requirement
128
128
  requirements:
129
- - - ~>
129
+ - - "~>"
130
130
  - !ruby/object:Gem::Version
131
131
  version: '3.2'
132
132
  type: :development
133
133
  prerelease: false
134
134
  version_requirements: !ruby/object:Gem::Requirement
135
135
  requirements:
136
- - - ~>
136
+ - - "~>"
137
137
  - !ruby/object:Gem::Version
138
138
  version: '3.2'
139
139
  - !ruby/object:Gem::Dependency
140
140
  name: rubocop
141
141
  requirement: !ruby/object:Gem::Requirement
142
142
  requirements:
143
- - - ~>
143
+ - - "~>"
144
144
  - !ruby/object:Gem::Version
145
- version: '0.37'
145
+ version: 0.40.0
146
146
  type: :development
147
147
  prerelease: false
148
148
  version_requirements: !ruby/object:Gem::Requirement
149
149
  requirements:
150
- - - ~>
150
+ - - "~>"
151
151
  - !ruby/object:Gem::Version
152
- version: '0.37'
152
+ version: 0.40.0
153
153
  - !ruby/object:Gem::Dependency
154
154
  name: rspec
155
155
  requirement: !ruby/object:Gem::Requirement
156
156
  requirements:
157
- - - ~>
157
+ - - "~>"
158
158
  - !ruby/object:Gem::Version
159
159
  version: '3.4'
160
160
  type: :development
161
161
  prerelease: false
162
162
  version_requirements: !ruby/object:Gem::Requirement
163
163
  requirements:
164
- - - ~>
164
+ - - "~>"
165
165
  - !ruby/object:Gem::Version
166
166
  version: '3.4'
167
167
  - !ruby/object:Gem::Dependency
168
168
  name: yard
169
169
  requirement: !ruby/object:Gem::Requirement
170
170
  requirements:
171
- - - ~>
171
+ - - "~>"
172
172
  - !ruby/object:Gem::Version
173
173
  version: '0.8'
174
174
  type: :development
175
175
  prerelease: false
176
176
  version_requirements: !ruby/object:Gem::Requirement
177
177
  requirements:
178
- - - ~>
178
+ - - "~>"
179
179
  - !ruby/object:Gem::Version
180
180
  version: '0.8'
181
181
  description: Sensu plugins for beanstalk
182
- email: <sensu-users@googlegroups.com>
182
+ email: "<sensu-users@googlegroups.com>"
183
183
  executables:
184
184
  - check-beanstalk-jobs.rb
185
185
  - check-beanstalk-statistic.rb
186
186
  - check-beanstalk-watchers-to-buried.rb
187
187
  - check-beanstalk-watchers.rb
188
188
  - check-beanstalkd.rb
189
+ - metrics-beanstalkd-tubes.rb
189
190
  - metrics-beanstalkd.rb
190
191
  extensions: []
191
192
  extra_rdoc_files: []
@@ -198,6 +199,7 @@ files:
198
199
  - bin/check-beanstalk-watchers-to-buried.rb
199
200
  - bin/check-beanstalk-watchers.rb
200
201
  - bin/check-beanstalkd.rb
202
+ - bin/metrics-beanstalkd-tubes.rb
201
203
  - bin/metrics-beanstalkd.rb
202
204
  - lib/sensu-plugins-beanstalk.rb
203
205
  - lib/sensu-plugins-beanstalk/version.rb
@@ -217,12 +219,12 @@ require_paths:
217
219
  - lib
218
220
  required_ruby_version: !ruby/object:Gem::Requirement
219
221
  requirements:
220
- - - ! '>='
222
+ - - ">="
221
223
  - !ruby/object:Gem::Version
222
- version: 1.9.3
224
+ version: 2.0.0
223
225
  required_rubygems_version: !ruby/object:Gem::Requirement
224
226
  requirements:
225
- - - ! '>='
227
+ - - ">="
226
228
  - !ruby/object:Gem::Version
227
229
  version: '0'
228
230
  requirements: []