sensu-plugins-elasticsearch 0.0.2 → 0.1.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: 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