sensu-plugins-elasticsearch 0.0.2 → 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: 7280d7f9ae9d93800778cea2caad7ca804e9ec54
4
- data.tar.gz: e36491ff6bd7f1e26d4c2a519c4288a380d4d872
3
+ metadata.gz: 841a7d04c8e032b1c60523a057833bc972b9d1e7
4
+ data.tar.gz: 4edfa4438341e867ad346e2606fb5f96f9c2a97c
5
5
  SHA512:
6
- metadata.gz: 15376bdd8e0c81c00cb485e23af4123e4092d82c0486c494a3f061a86ff5694ef08dc047bc6776bb2d7d0d333d5439a76fdfe709113cfe48552505334d92058c
7
- data.tar.gz: 276dc9467ed1d744e29ea4aaf71d841555428ef94c5526fa10b6d36151d2a287af3369c342ab563d09cf79ac249c839714734e2e55a1f2b575447677d84fb8c0
6
+ metadata.gz: a072e6679399d1d94d13bb178cef644449edb4f8814f4910d0074fd36892305180f18d872f40b74c3bcec2c28010c57b10b48f5772f94ce606506ebc365c827c
7
+ data.tar.gz: 022682eba2d5b9f6dba6473481442f5346007263cf38f206ff17ab4ecb32b7bfa430b3207e24d08d0f0f3541284d38b520d0a79bc4cf3016dd2777b33bcdc707
Binary file
data.tar.gz.sig CHANGED
Binary file
@@ -5,6 +5,20 @@ This CHANGELOG follows the format listed at [Keep A Changelog](http://keepachang
5
5
 
6
6
  ## Unreleased][unreleased]
7
7
 
8
+ ## [0.1.0] - 2015-07-06
9
+
10
+ ### Added
11
+ - `check-es-node-status` node status check
12
+
13
+ ### Fixed
14
+ - uri resource path for `get_es_resource` method
15
+
16
+ ### Changed
17
+ - `get_es_resource` URI path needs to start with `/`
18
+ - clean cruft from Rakefile
19
+ - put deps in alpha order in gemspec
20
+ - update documentation links in README and CONTRIBUTING
21
+
8
22
  ## 0.0.1 - 2015-05-21
9
23
 
10
24
  ### Added
@@ -16,4 +30,5 @@ This CHANGELOG follows the format listed at [Keep A Changelog](http://keepachang
16
30
  - added binstubs
17
31
 
18
32
  ### Changed
19
- - removed cruft from /lib
33
+ - removed cruft from /lib
34
+
data/README.md CHANGED
@@ -11,16 +11,17 @@
11
11
 
12
12
  ## Files
13
13
  * /bin/check-es-cluster-status.rb
14
- * /bin/check-es-heap.rb
15
- * /bin/metrics-es-node-graphite.rb
16
14
  * /bin/check-es-file-descriptors.rb
15
+ * /bin/check-es-heap.rb
16
+ * /bin/check-es-node-status.rb
17
17
  * /bin/metrics-es-cluster.rb
18
18
  * /bin/metrics-es-node.rb
19
+ * /bin/metrics-es-node-graphite.rb
19
20
 
20
21
  ## Usage
21
22
 
22
23
  ## Installation
23
24
 
24
- [Installation and Setup](https://github.com/sensu-plugins/documentation/blob/master/user_docs/installation_instructions.md)
25
+ [Installation and Setup](http://sensu-plugins.io/docs/installation_instructions.html)
25
26
 
26
27
  ## Notes
@@ -62,7 +62,7 @@ class ESClusterStatus < Sensu::Plugin::Check::CLI
62
62
  default: 30
63
63
 
64
64
  def get_es_resource(resource)
65
- r = RestClient::Resource.new("http://#{config[:host]}:#{config[:port]}/#{resource}", timeout: config[:timeout])
65
+ r = RestClient::Resource.new("http://#{config[:host]}:#{config[:port]}#{resource}", timeout: config[:timeout])
66
66
  JSON.parse(r.get)
67
67
  rescue Errno::ECONNREFUSED
68
68
  critical 'Connection refused'
@@ -79,7 +79,7 @@ class ESClusterStatus < Sensu::Plugin::Check::CLI
79
79
 
80
80
  def master?
81
81
  if Gem::Version.new(acquire_es_version) >= Gem::Version.new('1.0.0')
82
- master = get_es_resource('_cluster/state/master_node')['master_node']
82
+ master = get_es_resource('/_cluster/state/master_node')['master_node']
83
83
  local = get_es_resource('/_nodes/_local')
84
84
  else
85
85
  master = get_es_resource('/_cluster/state?filter_routing_table=true&filter_metadata=true&filter_indices=true')['master_node']
@@ -67,7 +67,7 @@ class ESFileDescriptors < Sensu::Plugin::Check::CLI
67
67
  default: 80
68
68
 
69
69
  def get_es_resource(resource)
70
- r = RestClient::Resource.new("http://#{config[:host]}:#{config[:port]}/#{resource}", timeout: config[:timeout])
70
+ r = RestClient::Resource.new("http://#{config[:host]}:#{config[:port]}#{resource}", timeout: config[:timeout])
71
71
  JSON.parse(r.get)
72
72
  rescue Errno::ECONNREFUSED
73
73
  warning 'Connection refused'
@@ -80,7 +80,7 @@ class ESHeap < Sensu::Plugin::Check::CLI
80
80
  end
81
81
 
82
82
  def acquire_es_resource(resource)
83
- r = RestClient::Resource.new("http://#{config[:host]}:#{config[:port]}/#{resource}", timeout: config[:timeout])
83
+ r = RestClient::Resource.new("http://#{config[:host]}:#{config[:port]}#{resource}", timeout: config[:timeout])
84
84
  JSON.parse(r.get)
85
85
  rescue Errno::ECONNREFUSED
86
86
  warning 'Connection refused'
@@ -92,10 +92,10 @@ class ESHeap < Sensu::Plugin::Check::CLI
92
92
 
93
93
  def acquire_heap_data(return_max = false) # rubocop:disable all
94
94
  if Gem::Version.new(acquire_es_version) >= Gem::Version.new('1.0.0')
95
- stats = acquire_es_resource('_nodes/_local/stats?jvm=true')
95
+ stats = acquire_es_resource('/_nodes/_local/stats?jvm=true')
96
96
  node = stats['nodes'].keys.first
97
97
  else
98
- stats = acquire_es_resource('_cluster/nodes/_local/stats?jvm=true')
98
+ stats = acquire_es_resource('/_cluster/nodes/_local/stats?jvm=true')
99
99
  node = stats['nodes'].keys.first
100
100
  end
101
101
  begin
@@ -0,0 +1,80 @@
1
+ #! /usr/bin/env ruby
2
+ #
3
+ # check-es-node-status
4
+ #
5
+ # DESCRIPTION:
6
+ # This plugin checks the ElasticSearch node status, using its API.
7
+ # Works with ES 0.9x and ES 1.x
8
+ #
9
+ # OUTPUT:
10
+ # plain text
11
+ #
12
+ # PLATFORMS:
13
+ # Linux
14
+ #
15
+ # DEPENDENCIES:
16
+ # gem: sensu-plugin
17
+ # gem: rest-client
18
+ #
19
+ # USAGE:
20
+ # check-es-node-status --help
21
+ #
22
+ # NOTES:
23
+ #
24
+ # LICENSE:
25
+ # Copyright 2012 Sonian, Inc <chefs@sonian.net>
26
+ # Released under the same terms as Sensu (the MIT license); see LICENSE
27
+ # for details.
28
+ #
29
+
30
+ require 'sensu-plugin/check/cli'
31
+ require 'rest-client'
32
+ require 'json'
33
+
34
+ class ESNodeStatus < Sensu::Plugin::Check::CLI
35
+ option :host,
36
+ description: 'Elasticsearch host',
37
+ short: '-h HOST',
38
+ long: '--host HOST',
39
+ default: 'localhost'
40
+
41
+ option :port,
42
+ description: 'Elasticsearch port',
43
+ short: '-p PORT',
44
+ long: '--port PORT',
45
+ proc: proc(&:to_i),
46
+ default: 9200
47
+
48
+ option :timeout,
49
+ description: 'Sets the connection timeout for REST client',
50
+ short: '-t SECS',
51
+ long: '--timeout SECS',
52
+ proc: proc(&:to_i),
53
+ default: 30
54
+
55
+ def get_es_resource(resource)
56
+ r = RestClient::Resource.new("http://#{config[:host]}:#{config[:port]}#{resource}", timeout: config[:timeout])
57
+ JSON.parse(r.get)
58
+ rescue Errno::ECONNREFUSED
59
+ critical 'Connection refused'
60
+ rescue RestClient::RequestTimeout
61
+ critical 'Connection timed out'
62
+ rescue Errno::ECONNRESET
63
+ critical 'Connection reset by peer'
64
+ end
65
+
66
+ def acquire_status
67
+ health = get_es_resource('/')
68
+ health['status'].to_i
69
+ end
70
+
71
+ def run
72
+ node_status = acquire_status
73
+
74
+ if node_status == 200
75
+ ok "Alive #{(node_status)}"
76
+ else
77
+ critical "Dead (#{node_status})"
78
+ end
79
+ end
80
+ end
@@ -68,7 +68,7 @@ class ESClusterMetrics < Sensu::Plugin::Metric::CLI::Graphite
68
68
  end
69
69
 
70
70
  def get_es_resource(resource)
71
- r = RestClient::Resource.new("http://#{config[:host]}:#{config[:port]}/#{resource}", timeout: config[:timeout])
71
+ r = RestClient::Resource.new("http://#{config[:host]}:#{config[:port]}#{resource}", timeout: config[:timeout])
72
72
  JSON.parse(r.get)
73
73
  rescue Errno::ECONNREFUSED
74
74
  warning 'Connection refused'
@@ -94,7 +94,7 @@ class ESNodeGraphiteMetrics < Sensu::Plugin::Metric::CLI::Graphite
94
94
  default: false
95
95
 
96
96
  def get_es_resource(resource)
97
- r = RestClient::Resource.new("http://#{config[:server]}:#{config[:port]}/#{resource}?pretty", timeout: config[:timeout])
97
+ r = RestClient::Resource.new("http://#{config[:server]}:#{config[:port]}#{resource}?pretty", timeout: config[:timeout])
98
98
  JSON.parse(r.get)
99
99
  rescue Errno::ECONNREFUSED
100
100
  warning 'Connection refused'
@@ -139,9 +139,9 @@ class ESNodeGraphiteMetrics < Sensu::Plugin::Metric::CLI::Graphite
139
139
  end
140
140
 
141
141
  if Gem::Version.new(acquire_es_version) >= Gem::Version.new('1.0.0')
142
- stats = get_es_resource("_nodes/_local/stats?#{stats_query_string}")
142
+ stats = get_es_resource("/_nodes/_local/stats?#{stats_query_string}")
143
143
  else
144
- stats = get_es_resource("_cluster/nodes/_local/stats?#{stats_query_string}")
144
+ stats = get_es_resource("/_cluster/nodes/_local/stats?#{stats_query_string}")
145
145
  end
146
146
 
147
147
  timestamp = Time.now.to_i
@@ -1,8 +1,8 @@
1
1
  module SensuPluginsElasticsearch
2
2
  module Version
3
3
  MAJOR = 0
4
- MINOR = 0
5
- PATCH = 2
4
+ MINOR = 1
5
+ PATCH = 0
6
6
 
7
7
  VER_STRING = [MAJOR, MINOR, PATCH].compact.join('.')
8
8
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sensu-plugins-elasticsearch
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sensu Plugins and contributors
@@ -30,92 +30,92 @@ cert_chain:
30
30
  8sHuVruarogxxKPBzlL2is4EUb6oN/RdpGx2l4254+nyR+abg//Ed27Ym0PkB4lk
31
31
  HP0m8WSjZmFr109pE/sVsM5jtOCvogyujQOjNVGN4gz1wwPr
32
32
  -----END CERTIFICATE-----
33
- date: 2015-06-03 00:00:00.000000000 Z
33
+ date: 2015-07-07 00:00:00.000000000 Z
34
34
  dependencies:
35
35
  - !ruby/object:Gem::Dependency
36
- name: sensu-plugin
36
+ name: rest-client
37
37
  requirement: !ruby/object:Gem::Requirement
38
38
  requirements:
39
39
  - - '='
40
40
  - !ruby/object:Gem::Version
41
- version: 1.1.0
41
+ version: 1.8.0
42
42
  type: :runtime
43
43
  prerelease: false
44
44
  version_requirements: !ruby/object:Gem::Requirement
45
45
  requirements:
46
46
  - - '='
47
47
  - !ruby/object:Gem::Version
48
- version: 1.1.0
48
+ version: 1.8.0
49
49
  - !ruby/object:Gem::Dependency
50
- name: rest-client
50
+ name: sensu-plugin
51
51
  requirement: !ruby/object:Gem::Requirement
52
52
  requirements:
53
53
  - - '='
54
54
  - !ruby/object:Gem::Version
55
- version: 1.8.0
55
+ version: 1.1.0
56
56
  type: :runtime
57
57
  prerelease: false
58
58
  version_requirements: !ruby/object:Gem::Requirement
59
59
  requirements:
60
60
  - - '='
61
61
  - !ruby/object:Gem::Version
62
- version: 1.8.0
62
+ version: 1.1.0
63
63
  - !ruby/object:Gem::Dependency
64
- name: codeclimate-test-reporter
64
+ name: bundler
65
65
  requirement: !ruby/object:Gem::Requirement
66
66
  requirements:
67
67
  - - "~>"
68
68
  - !ruby/object:Gem::Version
69
- version: '0.4'
69
+ version: '1.7'
70
70
  type: :development
71
71
  prerelease: false
72
72
  version_requirements: !ruby/object:Gem::Requirement
73
73
  requirements:
74
74
  - - "~>"
75
75
  - !ruby/object:Gem::Version
76
- version: '0.4'
76
+ version: '1.7'
77
77
  - !ruby/object:Gem::Dependency
78
- name: rubocop
78
+ name: codeclimate-test-reporter
79
79
  requirement: !ruby/object:Gem::Requirement
80
80
  requirements:
81
81
  - - "~>"
82
82
  - !ruby/object:Gem::Version
83
- version: '0.30'
83
+ version: '0.4'
84
84
  type: :development
85
85
  prerelease: false
86
86
  version_requirements: !ruby/object:Gem::Requirement
87
87
  requirements:
88
88
  - - "~>"
89
89
  - !ruby/object:Gem::Version
90
- version: '0.30'
90
+ version: '0.4'
91
91
  - !ruby/object:Gem::Dependency
92
- name: rspec
92
+ name: github-markup
93
93
  requirement: !ruby/object:Gem::Requirement
94
94
  requirements:
95
95
  - - "~>"
96
96
  - !ruby/object:Gem::Version
97
- version: '3.1'
97
+ version: '1.3'
98
98
  type: :development
99
99
  prerelease: false
100
100
  version_requirements: !ruby/object:Gem::Requirement
101
101
  requirements:
102
102
  - - "~>"
103
103
  - !ruby/object:Gem::Version
104
- version: '3.1'
104
+ version: '1.3'
105
105
  - !ruby/object:Gem::Dependency
106
- name: bundler
106
+ name: pry
107
107
  requirement: !ruby/object:Gem::Requirement
108
108
  requirements:
109
109
  - - "~>"
110
110
  - !ruby/object:Gem::Version
111
- version: '1.7'
111
+ version: '0.10'
112
112
  type: :development
113
113
  prerelease: false
114
114
  version_requirements: !ruby/object:Gem::Requirement
115
115
  requirements:
116
116
  - - "~>"
117
117
  - !ruby/object:Gem::Version
118
- version: '1.7'
118
+ version: '0.10'
119
119
  - !ruby/object:Gem::Dependency
120
120
  name: rake
121
121
  requirement: !ruby/object:Gem::Requirement
@@ -131,67 +131,68 @@ dependencies:
131
131
  - !ruby/object:Gem::Version
132
132
  version: '10.0'
133
133
  - !ruby/object:Gem::Dependency
134
- name: github-markup
134
+ name: redcarpet
135
135
  requirement: !ruby/object:Gem::Requirement
136
136
  requirements:
137
137
  - - "~>"
138
138
  - !ruby/object:Gem::Version
139
- version: '1.3'
139
+ version: '3.2'
140
140
  type: :development
141
141
  prerelease: false
142
142
  version_requirements: !ruby/object:Gem::Requirement
143
143
  requirements:
144
144
  - - "~>"
145
145
  - !ruby/object:Gem::Version
146
- version: '1.3'
146
+ version: '3.2'
147
147
  - !ruby/object:Gem::Dependency
148
- name: redcarpet
148
+ name: rubocop
149
149
  requirement: !ruby/object:Gem::Requirement
150
150
  requirements:
151
- - - "~>"
151
+ - - '='
152
152
  - !ruby/object:Gem::Version
153
- version: '3.2'
153
+ version: '0.30'
154
154
  type: :development
155
155
  prerelease: false
156
156
  version_requirements: !ruby/object:Gem::Requirement
157
157
  requirements:
158
- - - "~>"
158
+ - - '='
159
159
  - !ruby/object:Gem::Version
160
- version: '3.2'
160
+ version: '0.30'
161
161
  - !ruby/object:Gem::Dependency
162
- name: yard
162
+ name: rspec
163
163
  requirement: !ruby/object:Gem::Requirement
164
164
  requirements:
165
165
  - - "~>"
166
166
  - !ruby/object:Gem::Version
167
- version: '0.8'
167
+ version: '3.1'
168
168
  type: :development
169
169
  prerelease: false
170
170
  version_requirements: !ruby/object:Gem::Requirement
171
171
  requirements:
172
172
  - - "~>"
173
173
  - !ruby/object:Gem::Version
174
- version: '0.8'
174
+ version: '3.1'
175
175
  - !ruby/object:Gem::Dependency
176
- name: pry
176
+ name: yard
177
177
  requirement: !ruby/object:Gem::Requirement
178
178
  requirements:
179
179
  - - "~>"
180
180
  - !ruby/object:Gem::Version
181
- version: '0.10'
181
+ version: '0.8'
182
182
  type: :development
183
183
  prerelease: false
184
184
  version_requirements: !ruby/object:Gem::Requirement
185
185
  requirements:
186
186
  - - "~>"
187
187
  - !ruby/object:Gem::Version
188
- version: '0.10'
188
+ version: '0.8'
189
189
  description: Sensu plugins for elasticsearch
190
190
  email: "<sensu-users@googlegroups.com>"
191
191
  executables:
192
192
  - metrics-es-node.rb
193
193
  - metrics-es-node-graphite.rb
194
194
  - metrics-es-cluster.rb
195
+ - check-es-node-status.rb
195
196
  - check-es-heap.rb
196
197
  - check-es-file-descriptors.rb
197
198
  - check-es-cluster-status.rb
@@ -204,6 +205,7 @@ files:
204
205
  - bin/check-es-cluster-status.rb
205
206
  - bin/check-es-file-descriptors.rb
206
207
  - bin/check-es-heap.rb
208
+ - bin/check-es-node-status.rb
207
209
  - bin/metrics-es-cluster.rb
208
210
  - bin/metrics-es-node-graphite.rb
209
211
  - bin/metrics-es-node.rb
metadata.gz.sig CHANGED
Binary file