sensu-plugins-druid 0.0.1 → 0.1.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: 412715695f901086fccce41282ae9cbee33f2933
4
- data.tar.gz: 830e7d5307de4ca7ef6d19e6b43ceac981ca2a1d
3
+ metadata.gz: 4106f1dadc1fd3b3824bd06064e00b5060b0d516
4
+ data.tar.gz: 0531385d3fc295761b345de95291bd3a9d47127f
5
5
  SHA512:
6
- metadata.gz: 2aa793b8ce89ac19566ec216bc71aa62f445156681cfa824dd87acb49ca47a89198f9ab98193b4a6f0f370f144810fa94453468deb56857fe0c3fe3a9de75104
7
- data.tar.gz: 6f725c7e690efa788dc67c0a46858efaba9a6438f59b766e6a3556d27a1eeed9d4818a34fa0c761c5e0d94c4ffdce335a36bc37e778bb328682b6ad21829a706
6
+ metadata.gz: b3db3301ac4df9424b584ec30ba492dadcf6f17bf08899b91cdd70a9f0031b54155a21a43876440b3198f8de5f1f227447c50f62fea80d77fe7bc991461c1818
7
+ data.tar.gz: da7b870aebd416197db91dfd0385d356261d192a4af65b194cc6dfce853f551e231e12f4ff239d9a1526731a52dee4d1e7b48eba48e6e2a8fb8800539a871278
data/CHANGELOG.md CHANGED
@@ -1,5 +1,12 @@
1
1
  # Change Log
2
2
 
3
+ 0.1.0 - 2017-05-18
4
+ ---
5
+ ### Added
6
+ * New check: check-node-presence.rb
7
+ * Updated README
8
+ * Updated CONTRIBUTION.md
9
+
3
10
  0.0.1 - 2017-05-13
4
11
  ---
5
12
  ### Added
data/README.md CHANGED
@@ -4,10 +4,21 @@
4
4
  ---
5
5
  ![Logo image](http://i.imgur.com/Ouz7wcO.png "Logo")
6
6
 
7
- ## Unreleased:
8
- ### List of the checks:
9
- * check-unavailable-segments.rb
7
+ ## Installation
8
+ [Installation Guide](http://sensu-plugins.io/docs/installation_instructions.html)
10
9
 
10
+ ## Versions:
11
11
 
12
- ## TODO:
13
- * check-historical-presence.rb
12
+ ### Unreleased:
13
+ ---
14
+
15
+ ### Version 0.1.0
16
+ #### List of available checks:
17
+ * check-unavailable-segments.rb: Checks if Coordinator has amount of segments to load lower than threshold
18
+ * check-node-presence.rb: Checks node presence in Coordinator server list
19
+ ---
20
+
21
+ ### Version 0.0.1
22
+ Proof of concept
23
+ #### List of available checks:
24
+ * check-unavailable-segments.rb: Checks if Coordinator has amount of segments to load lower than threshold
@@ -0,0 +1,79 @@
1
+ #!/usr/bin/env ruby
2
+ # encoding: UTF-8
3
+ #
4
+ # check-node-presence
5
+ #
6
+ # DESCRIPTION:
7
+ # Check if Druid Historical node is present in Coordinator UI.
8
+ #
9
+ # This script checks Server status in Coordinator UI.
10
+ # IN general, there should be a list of Historical nodes for
11
+ # different tiers.
12
+ # This check requests "servers" from Coordinator API.
13
+ # Druid responds with JSON, which contains information about
14
+ # Historical servers status.
15
+ #
16
+ # Druid documentation:
17
+ # http://druid.io/docs/latest/design/coordinator.html
18
+ #
19
+ # PLATFORMS:
20
+ # All
21
+ #
22
+ # DEPENDENCIES:
23
+ # gem: sensu-plugin
24
+ # gem: json
25
+ #
26
+ # USAGE:
27
+ # Check if amount of segments to load is not exceeding the threshold.
28
+ # ./check-node-presence.rb -s localhost -p 8081 -n historical-node01
29
+ # ./check-node-presence.rb --server localhost --port 8081 --node historical-node01
30
+ #
31
+ # LICENCE:
32
+ # Yurii Rochniak <yrochnyak@gmail.com>
33
+ # Released under the same terms as Sensu (the MIT license); see LICENSE
34
+ # for details.
35
+ #
36
+
37
+ require 'sensu-plugin/check/cli'
38
+ require 'net/http'
39
+ require 'json'
40
+
41
+ class CheckUnavailableSegments < Sensu::Plugin::Check::CLI
42
+ option :server,
43
+ description: 'Druid Coordinator node to connect to.',
44
+ short: '-s HOSTNAME',
45
+ long: '--server HOSTNAME',
46
+ default: 'localhost'
47
+
48
+ option :port,
49
+ description: 'Druid Coordinator API port.',
50
+ short: '-p PORT',
51
+ long: '--port PORT',
52
+ default: '8081'
53
+
54
+ option :node,
55
+ description: 'Node pattern to search',
56
+ short: '-n NODE',
57
+ long: '--node NODE',
58
+ proc: proc(&:to_s)
59
+
60
+ def run
61
+ api = '/druid/coordinator/v1/servers?simple'
62
+
63
+ begin
64
+ url = "http://#{config[:server]}:#{config[:port]}#{api}"
65
+ uri = URI(url)
66
+ response = Net::HTTP.get(uri)
67
+ rescue
68
+ critical %(Cannot connect to the Coordinator host on http://#{config[:server]}:#{config[:port]}#{api})
69
+ end
70
+
71
+ parsed = JSON.parse(response)
72
+ parsed.each do |node|
73
+ if node['host'] =~ /#{config[:node]}/
74
+ ok %(Found #{node['type']} #{node['host']}, which is like #{config[:node]})
75
+ end
76
+ end
77
+ critical %("Node matching #{config[:node]} not found in Coordinator server list!")
78
+ end
79
+ end
@@ -9,7 +9,7 @@
9
9
  # Unavailable segments could indicate an issue with any Historical node
10
10
  # or Coordinator.
11
11
  # This check requests "loadstatus" from Coordinator API.
12
- # Druid responds with JSON, which contain information regarding segments
12
+ # Druid responds with JSON, which contains information regarding segments
13
13
  # to load for each datasource.
14
14
  #
15
15
  # Druid documentation:
@@ -20,6 +20,7 @@
20
20
  #
21
21
  # DEPENDENCIES:
22
22
  # gem: sensu-plugin
23
+ # gem: json
23
24
  #
24
25
  # USAGE:
25
26
  # Check if amount of segments to load is not exceeding the threshold.
@@ -1,8 +1,8 @@
1
1
  module SensuPluginsDruid
2
2
  module Version
3
3
  MAJOR = 0
4
- MINOR = 0
5
- PATCH = 1
4
+ MINOR = 1
5
+ PATCH = 0
6
6
 
7
7
  VER_STRING = [MAJOR, MINOR, PATCH].compact.join('.')
8
8
  end
metadata CHANGED
@@ -1,178 +1,179 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sensu-plugins-druid
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yurii Rochniak
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-05-17 00:00:00.000000000 Z
11
+ date: 2017-05-18 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
28
28
  name: json
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ~>
31
+ - - "~>"
32
32
  - !ruby/object:Gem::Version
33
33
  version: 1.8.6
34
- - - '>='
34
+ - - ">="
35
35
  - !ruby/object:Gem::Version
36
36
  version: 1.8.6
37
37
  type: :runtime
38
38
  prerelease: false
39
39
  version_requirements: !ruby/object:Gem::Requirement
40
40
  requirements:
41
- - - ~>
41
+ - - "~>"
42
42
  - !ruby/object:Gem::Version
43
43
  version: 1.8.6
44
- - - '>='
44
+ - - ">="
45
45
  - !ruby/object:Gem::Version
46
46
  version: 1.8.6
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: bundler
49
49
  requirement: !ruby/object:Gem::Requirement
50
50
  requirements:
51
- - - ~>
51
+ - - "~>"
52
52
  - !ruby/object:Gem::Version
53
53
  version: '1.7'
54
54
  type: :development
55
55
  prerelease: false
56
56
  version_requirements: !ruby/object:Gem::Requirement
57
57
  requirements:
58
- - - ~>
58
+ - - "~>"
59
59
  - !ruby/object:Gem::Version
60
60
  version: '1.7'
61
61
  - !ruby/object:Gem::Dependency
62
62
  name: codeclimate-test-reporter
63
63
  requirement: !ruby/object:Gem::Requirement
64
64
  requirements:
65
- - - ~>
65
+ - - "~>"
66
66
  - !ruby/object:Gem::Version
67
67
  version: '0.4'
68
68
  type: :development
69
69
  prerelease: false
70
70
  version_requirements: !ruby/object:Gem::Requirement
71
71
  requirements:
72
- - - ~>
72
+ - - "~>"
73
73
  - !ruby/object:Gem::Version
74
74
  version: '0.4'
75
75
  - !ruby/object:Gem::Dependency
76
76
  name: github-markup
77
77
  requirement: !ruby/object:Gem::Requirement
78
78
  requirements:
79
- - - ~>
79
+ - - "~>"
80
80
  - !ruby/object:Gem::Version
81
81
  version: '1.3'
82
82
  type: :development
83
83
  prerelease: false
84
84
  version_requirements: !ruby/object:Gem::Requirement
85
85
  requirements:
86
- - - ~>
86
+ - - "~>"
87
87
  - !ruby/object:Gem::Version
88
88
  version: '1.3'
89
89
  - !ruby/object:Gem::Dependency
90
90
  name: pry
91
91
  requirement: !ruby/object:Gem::Requirement
92
92
  requirements:
93
- - - ~>
93
+ - - "~>"
94
94
  - !ruby/object:Gem::Version
95
95
  version: '0.10'
96
96
  type: :development
97
97
  prerelease: false
98
98
  version_requirements: !ruby/object:Gem::Requirement
99
99
  requirements:
100
- - - ~>
100
+ - - "~>"
101
101
  - !ruby/object:Gem::Version
102
102
  version: '0.10'
103
103
  - !ruby/object:Gem::Dependency
104
104
  name: rake
105
105
  requirement: !ruby/object:Gem::Requirement
106
106
  requirements:
107
- - - ~>
107
+ - - "~>"
108
108
  - !ruby/object:Gem::Version
109
109
  version: '10.5'
110
110
  type: :development
111
111
  prerelease: false
112
112
  version_requirements: !ruby/object:Gem::Requirement
113
113
  requirements:
114
- - - ~>
114
+ - - "~>"
115
115
  - !ruby/object:Gem::Version
116
116
  version: '10.5'
117
117
  - !ruby/object:Gem::Dependency
118
118
  name: redcarpet
119
119
  requirement: !ruby/object:Gem::Requirement
120
120
  requirements:
121
- - - ~>
121
+ - - "~>"
122
122
  - !ruby/object:Gem::Version
123
123
  version: '3.2'
124
124
  type: :development
125
125
  prerelease: false
126
126
  version_requirements: !ruby/object:Gem::Requirement
127
127
  requirements:
128
- - - ~>
128
+ - - "~>"
129
129
  - !ruby/object:Gem::Version
130
130
  version: '3.2'
131
131
  - !ruby/object:Gem::Dependency
132
132
  name: rubocop
133
133
  requirement: !ruby/object:Gem::Requirement
134
134
  requirements:
135
- - - ~>
135
+ - - "~>"
136
136
  - !ruby/object:Gem::Version
137
137
  version: 0.40.0
138
138
  type: :development
139
139
  prerelease: false
140
140
  version_requirements: !ruby/object:Gem::Requirement
141
141
  requirements:
142
- - - ~>
142
+ - - "~>"
143
143
  - !ruby/object:Gem::Version
144
144
  version: 0.40.0
145
145
  - !ruby/object:Gem::Dependency
146
146
  name: rspec
147
147
  requirement: !ruby/object:Gem::Requirement
148
148
  requirements:
149
- - - ~>
149
+ - - "~>"
150
150
  - !ruby/object:Gem::Version
151
151
  version: '3.4'
152
152
  type: :development
153
153
  prerelease: false
154
154
  version_requirements: !ruby/object:Gem::Requirement
155
155
  requirements:
156
- - - ~>
156
+ - - "~>"
157
157
  - !ruby/object:Gem::Version
158
158
  version: '3.4'
159
159
  - !ruby/object:Gem::Dependency
160
160
  name: yard
161
161
  requirement: !ruby/object:Gem::Requirement
162
162
  requirements:
163
- - - ~>
163
+ - - "~>"
164
164
  - !ruby/object:Gem::Version
165
165
  version: '0.8'
166
166
  type: :development
167
167
  prerelease: false
168
168
  version_requirements: !ruby/object:Gem::Requirement
169
169
  requirements:
170
- - - ~>
170
+ - - "~>"
171
171
  - !ruby/object:Gem::Version
172
172
  version: '0.8'
173
173
  description: Sensu plugin to monitor Druid DB
174
174
  email: yrochnyak@gmail.com
175
175
  executables:
176
+ - check-node-presence.rb
176
177
  - check-unavailable-segments.rb
177
178
  extensions: []
178
179
  extra_rdoc_files: []
@@ -180,6 +181,7 @@ files:
180
181
  - CHANGELOG.md
181
182
  - LICENSE
182
183
  - README.md
184
+ - bin/check-node-presence.rb
183
185
  - bin/check-unavailable-segments.rb
184
186
  - lib/sensu-plugins-druid.rb
185
187
  - lib/sensu-plugins-druid/version.rb
@@ -196,17 +198,17 @@ require_paths:
196
198
  - lib
197
199
  required_ruby_version: !ruby/object:Gem::Requirement
198
200
  requirements:
199
- - - '>='
201
+ - - ">="
200
202
  - !ruby/object:Gem::Version
201
203
  version: 2.0.0
202
204
  required_rubygems_version: !ruby/object:Gem::Requirement
203
205
  requirements:
204
- - - '>='
206
+ - - ">="
205
207
  - !ruby/object:Gem::Version
206
208
  version: '0'
207
209
  requirements: []
208
210
  rubyforge_project:
209
- rubygems_version: 2.4.8
211
+ rubygems_version: 2.4.5
210
212
  signing_key:
211
213
  specification_version: 4
212
214
  summary: Druid monitoring plugin