sensu-plugins-rethinkdb 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: d7e7a9b6f94b55ea66d37a2c91b00bb028865ee2
4
+ data.tar.gz: 1e1c484e8f24e7f7ce7ac0bc8de4321b53915fc0
5
+ SHA512:
6
+ metadata.gz: 77ee19feb1e921f0b971d4ae1d75c495428629a8c7e5d16d707dae2be43d430560db1eadc58e8e0dd74bb142cad44e8f0a19d5b5a9cb54d6a5b233f3c040866b
7
+ data.tar.gz: 9bd569d28700c96e88aa1afe9815ea667b95efa723bf4539d64f3607b5f07539e71313d8463c05d019b05e3e6e59ad86c7a53cbafbabbf32570a32669fa3c256
checksums.yaml.gz.sig ADDED
@@ -0,0 +1,3 @@
1
+ ��Jٰ�Ly�e��vF$��l���ҭ[ԵkM�=��
2
+ |��k��w�<�D#��0zf\�Tmq��7�r'g�i�J�f< ��+�zl���K���
3
+ �@���aȮ/YYT�̗�07~����ɑ �˭��)q�q�g�f�����Tj4�8`O�*:B�t#oh.��Q��L���g<:v�ڌ��k+���d���߼��\��F�M �ӑґ���
data/CHANGELOG.md ADDED
@@ -0,0 +1,4 @@
1
+ ##[0.0.1] - 2015-08-06
2
+
3
+ ### Added
4
+ - initial release
data/LICENSE ADDED
File without changes
data/README.md ADDED
@@ -0,0 +1,23 @@
1
+ ## Sensu-Plugins-mysql
2
+
3
+ [ ![Build Status](https://travis-ci.org/prelist/sensu-plugins-rethinkdb.svg?branch=master)](https://travis-ci.org/prelist/sensu-plugins-rethinkdb)
4
+ [![Gem Version](https://badge.fury.io/rb/sensu-plugins-rethinkdb.svg)](http://badge.fury.io/rb/sensu-plugins-rethinkdb)
5
+ [![Code Climate](https://codeclimate.com/github/prelist/sensu-plugins-rethinkdb/badges/gpa.svg)](https://codeclimate.com/github/prelist/sensu-plugins-rethinkdb)
6
+ [![Test Coverage](https://codeclimate.com/github/prelist/sensu-plugins-rethinkdb/badges/coverage.svg)](https://codeclimate.com/github/prelist/sensu-plugins-rethinkdb)
7
+ [![Dependency Status](https://gemnasium.com/prelist/sensu-plugins-rethinkdb.svg)](https://gemnasium.com/prelist/sensu-plugins-rethinkdb)
8
+ [![Codeship Status for prelist/sensu-plugins-rethinkdb](https://codeship.com/projects/157d9ba0-1e8f-0133-c403-1ae4090f5ce6/status?branch=master)](https://codeship.com/projects/95336)
9
+
10
+ ## Functionality
11
+
12
+ ## Files
13
+ * bin/check-rethinkdb-alive.rb
14
+ * bin/check-rethinkdb-table-count.rb
15
+ * bin/metrics-rethinkdb.rb
16
+
17
+ ## Usage
18
+
19
+ ## Installation
20
+
21
+ [Installation and Setup](http://sensu-plugins.io/docs/installation_instructions.html)
22
+
23
+ ## Notes
@@ -0,0 +1,55 @@
1
+ # !/usr/bin/env ruby
2
+ #
3
+ # RethinkDB Alive Plugin
4
+ # ===
5
+ #
6
+ # This plugin attempts to login to rethinkdb with provided credentials.
7
+ #
8
+ # Copyright 2015 Jake Thompson <jake@prelist.co>
9
+ #
10
+ # Released under the same terms as Sensu (the MIT license); see LICENSE
11
+ # for details.
12
+
13
+ require 'sensu-plugin/check/cli'
14
+ require 'rethinkdb'
15
+ include RethinkDB::Shortcuts
16
+
17
+ class CheckRethinkDB < Sensu::Plugin::Check::CLI
18
+ option :host,
19
+ description: 'RethinkDB Host',
20
+ short: '-h HOST',
21
+ long: '--host HOST',
22
+ default: '127.0.01'
23
+
24
+ option :port,
25
+ description: 'RethinkDB Port',
26
+ short: '-p PORT',
27
+ long: '--port PORT',
28
+ default: 28_015
29
+
30
+ option :authkey,
31
+ description: 'RethinkDB Auth Key',
32
+ short: '-a AUTHKEY',
33
+ long: '--authkey AUTHKEY'
34
+
35
+ def run
36
+ begin
37
+ options = {
38
+ host: config[:host],
39
+ port: config[:port]
40
+ }
41
+ unless config[:authkey].nil?
42
+ options[:auth_key] = config[:authkey]
43
+ end
44
+
45
+ conn = r.connect(options)
46
+ result = r.db('rethinkdb').table('server_status')[:process].run(conn)
47
+ version = result.next['version']
48
+ ok "Server version: #{version}"
49
+ rescue RethinkDB::RqlDriverError => e
50
+ critical "Error message: #{e.error}"
51
+ ensure
52
+ conn.close if conn
53
+ end
54
+ end
55
+ end
@@ -0,0 +1,95 @@
1
+ # !/usr/bin/env ruby
2
+ #
3
+ # RethinkDB Alive Plugin
4
+ # ===
5
+ #
6
+ # This plugin attempts to login to rethinkdb with provided credentials.
7
+ #
8
+ # Copyright 2015 Jake Thompson <jake@prelist.co>
9
+ #
10
+ # Released under the same terms as Sensu (the MIT license); see LICENSE
11
+ # for details.
12
+
13
+ require 'sensu-plugin/check/cli'
14
+ require 'json'
15
+ require 'rethinkdb'
16
+ include RethinkDB::Shortcuts
17
+
18
+ class CheckRethinkDB < Sensu::Plugin::Check::CLI
19
+ option :host,
20
+ description: 'RethinkDB Host',
21
+ short: '-h HOST',
22
+ long: '--host HOST',
23
+ default: '127.0.01'
24
+
25
+ option :port,
26
+ description: 'RethinkDB Port',
27
+ short: '-p PORT',
28
+ long: '--port PORT',
29
+ proc: proc(&:to_i),
30
+ default: 28_015
31
+
32
+ option :authkey,
33
+ description: 'RethinkDB Auth Key',
34
+ short: '-a AUTHKEY',
35
+ long: '--authkey AUTHKEY'
36
+
37
+ option :database,
38
+ description: 'RethinkDB Database',
39
+ short: '-d DB',
40
+ long: '--database DB',
41
+ default: 'test'
42
+
43
+ option :table,
44
+ description: 'RethinkDB Table',
45
+ short: '-t TABLE',
46
+ long: '--table TABLE',
47
+ default: 'test'
48
+
49
+ option :warn,
50
+ short: '-w WARN',
51
+ proc: proc(&:to_f),
52
+ default: 1
53
+
54
+ option :crit,
55
+ short: '-c CRIT',
56
+ proc: proc(&:to_f),
57
+ default: 2
58
+
59
+ option :filter,
60
+ description: 'RethinkDB Filter as a JSON String',
61
+ short: '-f FILTER',
62
+ long: '--filter FILTER'
63
+
64
+ def run
65
+ begin
66
+ options = {
67
+ host: config[:host],
68
+ port: config[:port]
69
+ }
70
+ unless config[:authkey].nil?
71
+ options[:auth_key] = config[:authkey]
72
+ end
73
+
74
+ conn = r.connect(options)
75
+ if config[:filter].nil?
76
+ table_count = r.db(config[:database]).table(config[:table]).count.run(conn)
77
+ else
78
+ filter = JSON.parse(config[:filter])
79
+ table_count = r.db(config[:database]).table(config[:table]).filter(filter).count.run(conn)
80
+ end
81
+
82
+ msg = "total=#{table_count}"
83
+
84
+ message msg
85
+
86
+ critical if table_count > config[:crit]
87
+ warning if table_count > config[:warn]
88
+ ok
89
+ rescue RethinkDB::RqlDriverError => e
90
+ critical "Error message: #{e.error}"
91
+ ensure
92
+ conn.close if conn
93
+ end
94
+ end
95
+ end
@@ -0,0 +1,104 @@
1
+ # !/usr/bin/env ruby
2
+ #
3
+ # RethinkDB Metrics Plugin
4
+ # ===
5
+ #
6
+ # This plugin uses RethinkDB's 'stats' table to collect metrics
7
+ # from an instance of RethinkDB.
8
+ #
9
+ # Copyright 2015 Jake Thompson <jake@prelist.co>
10
+ #
11
+ # Released under the same terms as Sensu (the MIT license); see LICENSE
12
+ # for details.
13
+ #
14
+
15
+ require 'sensu-plugin/metric/cli'
16
+ require 'rethinkdb'
17
+ include RethinkDB::Shortcuts
18
+
19
+ class RethinkDBMetrics < Sensu::Plugin::Metric::CLI::Graphite
20
+ option :host,
21
+ description: 'RethinkDB Host',
22
+ short: '-h HOST',
23
+ long: '--host HOST',
24
+ default: '127.0.01'
25
+
26
+ option :port,
27
+ description: 'RethinkDB Port',
28
+ short: '-p PORT',
29
+ long: '--port PORT',
30
+ default: 28_015
31
+
32
+ option :authkey,
33
+ description: 'RethinkDB Auth Key',
34
+ short: '-a AUTHKEY',
35
+ long: '--authkey AUTHKEY'
36
+
37
+ option :scheme,
38
+ description: 'Metric naming scheme, text to prepend to metric',
39
+ short: '-s SCHEME',
40
+ long: '--scheme SCHEME',
41
+ default: "#{Socket.gethostname}.rethinkdb"
42
+
43
+ def run
44
+ begin
45
+ options = {
46
+ host: config[:host],
47
+ port: config[:port]
48
+ }
49
+ unless config[:authkey].nil?
50
+ options[:auth_key] = config[:authkey]
51
+ end
52
+
53
+ conn = r.connect(options)
54
+ results = r.db('rethinkdb').table('stats').run(conn)
55
+ rescue RethinkDB::RqlDriverError => e
56
+ puts e.message
57
+ end
58
+
59
+ results.each do |doc|
60
+ timestamp = Time.now.to_i
61
+ type = doc['id'][0]
62
+
63
+ case type
64
+ when 'server'
65
+ key = "#{type}.#{doc['server']}"
66
+ when 'table'
67
+ key = "#{type}.#{doc['db']}.#{doc['table']}"
68
+ when 'table_server'
69
+ key = "#{type}.#{doc['server']}.#{doc['db']}.#{doc['table']}"
70
+ else
71
+ key = type
72
+ end
73
+
74
+ doc['query_engine'].unnest.each do |metric, value|
75
+ output [config[:scheme], key, 'query', metric].join('.'), value, timestamp
76
+ end
77
+
78
+ unless doc['storage_engine'].nil?
79
+ doc['storage_engine'].unnest.each do |metric, value|
80
+ output [config[:scheme], key, 'storage', metric].join('.'), value, timestamp
81
+ end
82
+ end
83
+ end
84
+ ok
85
+ end
86
+ end
87
+
88
+ class Hash
89
+ def unnest
90
+ new_hash = {}
91
+ each do |key, val|
92
+ if val.is_a?(Hash)
93
+ new_hash.merge!(val.prefix_keys("#{key}."))
94
+ else
95
+ new_hash[key] = val
96
+ end
97
+ end
98
+ new_hash
99
+ end
100
+
101
+ def prefix_keys(prefix)
102
+ Hash[map { |key, val| [prefix + key, val] }].unnest
103
+ end
104
+ end
@@ -0,0 +1,9 @@
1
+ module SensuPluginsRethinkdb
2
+ module Version
3
+ MAJOR = 0
4
+ MINOR = 0
5
+ PATCH = 2
6
+
7
+ VER_STRING = [MAJOR, MINOR, PATCH].compact.join('.')
8
+ end
9
+ end
@@ -0,0 +1 @@
1
+ require 'sensu-plugins-rethinkdb/version'
data.tar.gz.sig ADDED
Binary file
metadata ADDED
@@ -0,0 +1,237 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: sensu-plugins-rethinkdb
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.2
5
+ platform: ruby
6
+ authors:
7
+ - Sensu-Plugins and contributors
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain:
11
+ - |
12
+ -----BEGIN CERTIFICATE-----
13
+ MIIDZDCCAkygAwIBAgIBATANBgkqhkiG9w0BAQUFADA8MQ0wCwYDVQQDDARqYWtl
14
+ MRcwFQYKCZImiZPyLGQBGRYHcHJlbGlzdDESMBAGCgmSJomT8ixkARkWAmNvMB4X
15
+ DTE1MDgwNjE4MjI0NVoXDTE2MDgwNTE4MjI0NVowPDENMAsGA1UEAwwEamFrZTEX
16
+ MBUGCgmSJomT8ixkARkWB3ByZWxpc3QxEjAQBgoJkiaJk/IsZAEZFgJjbzCCASIw
17
+ DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMqsSSWX0Bpx/ZHpgR+ajPd0vZX1
18
+ wnFMNzVD+EWneN/8LvB4XZbMei8kIoJ3XpI8sBdKJgKFryqpihu4cTPoMk76ZnY5
19
+ qKr0FRQw0dhjM9n/PtfEGlhjFBOK5V1C3t7xj7mZH19/MhgOg41JrmiWj20u5VZ5
20
+ 9L1OvEU/3sUq+CqgCNJi8U09A+uFvXgJoYBg/+5f5X9mizSkcmZh4ZZJ56KI+1t9
21
+ 3gRMT03iSiXIYItNXVNHx/v7z/NoXcC50T7GI9norzIJkK7cE2pmDTV3cbTQxxEB
22
+ u5Fz81w9DlRRLCj6bz1fTu15GDO0JuapPEDBGWZzXIEesz/52+CpAXdK9/UCAwEA
23
+ AaNxMG8wCQYDVR0TBAIwADALBgNVHQ8EBAMCBLAwHQYDVR0OBBYEFIB3YEl+DmUI
24
+ cYMyNzCQCz/VgFaKMBoGA1UdEQQTMBGBD2pha2VAcHJlbGlzdC5jbzAaBgNVHRIE
25
+ EzARgQ9qYWtlQHByZWxpc3QuY28wDQYJKoZIhvcNAQEFBQADggEBAHDnAt2cVF4M
26
+ BWSRJlDoUoWtFpGvHMWyxBDWO9N6HhVlxNp32umW3BfHXMo0JFXPGus7abDjMBJb
27
+ +4iYOfk3mCF7AIw/s5tS0rcsSwChRXkRI13NC76qHj9B6gfLaLpt1XjBQiuzz7Z/
28
+ IX6AjSZxRHy+gNP3Acy31ffcq2Z1k5UkIbSeBIL2IEN/fwK1dEuGrOlVwxXRpquC
29
+ +mmbYnUvdNMi8JWxDYqY82ZnHKHaZQJTQzlfih3LsZdeT1xFjN2BaD2TuDSu/IdT
30
+ vXW/96IprHu/wfONAGkHWhYX9PVZa4THY04VeSTpNVJpsM66V7OQaAT1vFXk2Pzv
31
+ qUTaxchsFp4=
32
+ -----END CERTIFICATE-----
33
+ date: 2015-08-06 00:00:00.000000000 Z
34
+ dependencies:
35
+ - !ruby/object:Gem::Dependency
36
+ name: sensu-plugin
37
+ requirement: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - '='
40
+ - !ruby/object:Gem::Version
41
+ version: 1.2.0
42
+ type: :runtime
43
+ prerelease: false
44
+ version_requirements: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - '='
47
+ - !ruby/object:Gem::Version
48
+ version: 1.2.0
49
+ - !ruby/object:Gem::Dependency
50
+ name: rethinkdb
51
+ requirement: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - '='
54
+ - !ruby/object:Gem::Version
55
+ version: 2.0.0.1
56
+ type: :runtime
57
+ prerelease: false
58
+ version_requirements: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - '='
61
+ - !ruby/object:Gem::Version
62
+ version: 2.0.0.1
63
+ - !ruby/object:Gem::Dependency
64
+ name: bundler
65
+ requirement: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - "~>"
68
+ - !ruby/object:Gem::Version
69
+ version: '1.7'
70
+ type: :development
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ requirements:
74
+ - - "~>"
75
+ - !ruby/object:Gem::Version
76
+ version: '1.7'
77
+ - !ruby/object:Gem::Dependency
78
+ name: codeclimate-test-reporter
79
+ requirement: !ruby/object:Gem::Requirement
80
+ requirements:
81
+ - - "~>"
82
+ - !ruby/object:Gem::Version
83
+ version: '0.4'
84
+ type: :development
85
+ prerelease: false
86
+ version_requirements: !ruby/object:Gem::Requirement
87
+ requirements:
88
+ - - "~>"
89
+ - !ruby/object:Gem::Version
90
+ version: '0.4'
91
+ - !ruby/object:Gem::Dependency
92
+ name: github-markup
93
+ requirement: !ruby/object:Gem::Requirement
94
+ requirements:
95
+ - - "~>"
96
+ - !ruby/object:Gem::Version
97
+ version: '1.3'
98
+ type: :development
99
+ prerelease: false
100
+ version_requirements: !ruby/object:Gem::Requirement
101
+ requirements:
102
+ - - "~>"
103
+ - !ruby/object:Gem::Version
104
+ version: '1.3'
105
+ - !ruby/object:Gem::Dependency
106
+ name: pry
107
+ requirement: !ruby/object:Gem::Requirement
108
+ requirements:
109
+ - - "~>"
110
+ - !ruby/object:Gem::Version
111
+ version: '0.10'
112
+ type: :development
113
+ prerelease: false
114
+ version_requirements: !ruby/object:Gem::Requirement
115
+ requirements:
116
+ - - "~>"
117
+ - !ruby/object:Gem::Version
118
+ version: '0.10'
119
+ - !ruby/object:Gem::Dependency
120
+ name: rubocop
121
+ requirement: !ruby/object:Gem::Requirement
122
+ requirements:
123
+ - - '='
124
+ - !ruby/object:Gem::Version
125
+ version: 0.32.1
126
+ type: :development
127
+ prerelease: false
128
+ version_requirements: !ruby/object:Gem::Requirement
129
+ requirements:
130
+ - - '='
131
+ - !ruby/object:Gem::Version
132
+ version: 0.32.1
133
+ - !ruby/object:Gem::Dependency
134
+ name: rspec
135
+ requirement: !ruby/object:Gem::Requirement
136
+ requirements:
137
+ - - "~>"
138
+ - !ruby/object:Gem::Version
139
+ version: '3.1'
140
+ type: :development
141
+ prerelease: false
142
+ version_requirements: !ruby/object:Gem::Requirement
143
+ requirements:
144
+ - - "~>"
145
+ - !ruby/object:Gem::Version
146
+ version: '3.1'
147
+ - !ruby/object:Gem::Dependency
148
+ name: rake
149
+ requirement: !ruby/object:Gem::Requirement
150
+ requirements:
151
+ - - "~>"
152
+ - !ruby/object:Gem::Version
153
+ version: '10.0'
154
+ type: :development
155
+ prerelease: false
156
+ version_requirements: !ruby/object:Gem::Requirement
157
+ requirements:
158
+ - - "~>"
159
+ - !ruby/object:Gem::Version
160
+ version: '10.0'
161
+ - !ruby/object:Gem::Dependency
162
+ name: redcarpet
163
+ requirement: !ruby/object:Gem::Requirement
164
+ requirements:
165
+ - - "~>"
166
+ - !ruby/object:Gem::Version
167
+ version: '3.2'
168
+ type: :development
169
+ prerelease: false
170
+ version_requirements: !ruby/object:Gem::Requirement
171
+ requirements:
172
+ - - "~>"
173
+ - !ruby/object:Gem::Version
174
+ version: '3.2'
175
+ - !ruby/object:Gem::Dependency
176
+ name: yard
177
+ requirement: !ruby/object:Gem::Requirement
178
+ requirements:
179
+ - - "~>"
180
+ - !ruby/object:Gem::Version
181
+ version: '0.8'
182
+ type: :development
183
+ prerelease: false
184
+ version_requirements: !ruby/object:Gem::Requirement
185
+ requirements:
186
+ - - "~>"
187
+ - !ruby/object:Gem::Version
188
+ version: '0.8'
189
+ description: This plugin provides ...
190
+ email: "<jake@prelist.co>"
191
+ executables:
192
+ - check-rethinkdb-alive.rb
193
+ - check-rethinkdb-table-count.rb
194
+ - metrics-rethinkdb.rb
195
+ extensions: []
196
+ extra_rdoc_files: []
197
+ files:
198
+ - CHANGELOG.md
199
+ - LICENSE
200
+ - README.md
201
+ - bin/check-rethinkdb-alive.rb
202
+ - bin/check-rethinkdb-table-count.rb
203
+ - bin/metrics-rethinkdb.rb
204
+ - lib/sensu-plugins-rethinkdb.rb
205
+ - lib/sensu-plugins-rethinkdb/version.rb
206
+ homepage: https://github.com/prelist/sensu-plugins-rethinkdb
207
+ licenses:
208
+ - MIT
209
+ metadata:
210
+ maintainer: prelist
211
+ development_status: active
212
+ production_status: unstable - testing recommended
213
+ release_draft: 'false'
214
+ release_prerelease: 'false'
215
+ post_install_message: You can use the embedded Ruby by setting EMBEDDED_RUBY=true
216
+ in /etc/default/sensu
217
+ rdoc_options: []
218
+ require_paths:
219
+ - lib
220
+ required_ruby_version: !ruby/object:Gem::Requirement
221
+ requirements:
222
+ - - ">="
223
+ - !ruby/object:Gem::Version
224
+ version: 1.9.3
225
+ required_rubygems_version: !ruby/object:Gem::Requirement
226
+ requirements:
227
+ - - ">="
228
+ - !ruby/object:Gem::Version
229
+ version: '0'
230
+ requirements: []
231
+ rubyforge_project:
232
+ rubygems_version: 2.4.5
233
+ signing_key:
234
+ specification_version: 4
235
+ summary: Sensu plugins for rethinkdb
236
+ test_files: []
237
+ has_rdoc:
metadata.gz.sig ADDED
@@ -0,0 +1,2 @@
1
+ U�6�8�ȫI��U���� ��Ϡ;[.�v��B�r������������F�Y"̖w��:�K}?N^\4ʩe{(_�2 %M�����R�� V��QFds
2
+ $��?whB[���~wuj��L��Z����_8b���!��~;A�G��q��j{���K�IƵ�����$��_�����j�