sensu-plugins-elasticsearch 0.3.0 → 0.3.1

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: df9596b9f751d85dd0f774ad4d356b41dfa3cb16
4
- data.tar.gz: 80c0c997e2b2cf195e3062794e5c19c1d8175c4b
3
+ metadata.gz: 7274d48632cbac489016fcc28073665e0221bd81
4
+ data.tar.gz: 3786345e742f828052e54fe80c1d2eb81c9b0cbe
5
5
  SHA512:
6
- metadata.gz: 042ccabd49cc993b4d114bd8e287b3a534f493c83067fe7f6274517a42f867ae248fb82480741c5455388e6ace45f626c0726b5a7e89e3148935ecf69a773f4f
7
- data.tar.gz: db0f1701b0f3a1008b5a9d1cc319967351c5e86906d6683a8a7a964d9fef8362e8e36a3dfb81054c6895532ec6944e7550823953269b7a53a9a791de6e8931cf
6
+ metadata.gz: 660cbc6632fdc418a7dbc48525cd0b517ad7d7556ea5e8f4c87dc490993944c126ba1b74d82a99264eed7516b868726b56cf22b578be917b7e367806928a58eb
7
+ data.tar.gz: 5995bf40185ee2bb37007f918c88dd8d8cbdef86062bbf38f4d7f53ee018f20a1b026a9d6ee62d9388264251753c260139fddc1def8c6bf3c50e6cd84d5d70e5
Binary file
data.tar.gz.sig CHANGED
Binary file
@@ -5,6 +5,11 @@ This CHANGELOG follows the format listed at [Keep A Changelog](http://keepachang
5
5
 
6
6
  ## Unreleased
7
7
 
8
+ ## [0.3.1] - 2015-12-29
9
+ ### Changed
10
+ - Update metrics-es-node.rb to use version checks consistent with other metrics
11
+ - Update metrics-es-cluster.rb to use `_stats` api instead of `/_count?q=*:*` see [Unbound wildcard range query cripples es on larger installs #20](https://github.com/sensu-plugins/sensu-plugins-elasticsearch/issues/20)
12
+
8
13
  ## [0.3.0] - 2015-11-18
9
14
  ### Changed
10
15
  - Update metrics-es-node-graphite.rb, check-es-node-status.rb, and check-es-file-descriptors.rb for Elasticsearch 2.0
@@ -34,8 +34,7 @@
34
34
  require 'sensu-plugin/check/cli'
35
35
  require 'elasticsearch'
36
36
  require 'time'
37
-
38
- require_relative 'sensu-plugins-elasticsearch'
37
+ require 'sensu-plugins-elasticsearch'
39
38
 
40
39
  #
41
40
  # ES Heap
@@ -103,6 +102,13 @@ class ESQueryCount < Sensu::Plugin::Check::CLI
103
102
  boolean: true,
104
103
  default: false
105
104
 
105
+ option :search_field,
106
+ description: 'The Elasticsearch document field to search for your query string.',
107
+ short: '-f FIELD',
108
+ long: '--field FIELD',
109
+ required: false,
110
+ default: 'message'
111
+
106
112
  option :query,
107
113
  description: 'Elasticsearch query',
108
114
  short: '-q QUERY',
@@ -168,29 +174,29 @@ class ESQueryCount < Sensu::Plugin::Check::CLI
168
174
  response = client.count(build_request_options)
169
175
  if config[:invert]
170
176
  if response['count'] < config[:crit]
171
- critical 'Query count was below critical threshold'
177
+ critical "Query count (#{response['count']}) was below critical threshold"
172
178
  elsif response['count'] < config[:warn]
173
- warning 'Query count was below warning threshold'
179
+ warning "Query count (#{response['count']}) was below warning threshold"
174
180
  else
175
- ok
181
+ ok "Query count (#{response['count']}) was ok"
176
182
  end
177
183
  else
178
184
  if response['count'] > config[:crit]
179
- critical 'Query count was above critical threshold'
185
+ critical "Query count (#{response['count']}) was above critical threshold"
180
186
  elsif response['count'] > config[:warn]
181
- warning 'Query count was above warning threshold'
187
+ warning "Query count (#{response['count']}) was above warning threshold"
182
188
  else
183
- ok
189
+ ok "Query count (#{response['count']}) was ok"
184
190
  end
185
191
  end
186
192
  rescue Elasticsearch::Transport::Transport::Errors::NotFound
187
193
  if config[:invert]
188
194
  if response['count'] < config[:crit]
189
- critical 'Query count was below critical threshold'
195
+ critical "Query count (#{response['count']}) was below critical threshold"
190
196
  elsif response['count'] < config[:warn]
191
- warning 'Query count was below warning threshold'
197
+ warning "Query count (#{response['count']}) was below warning threshold"
192
198
  else
193
- ok
199
+ ok "Query count (#{response['count']}) was ok"
194
200
  end
195
201
  else
196
202
  ok 'No results found, count was below thresholds'
@@ -109,8 +109,8 @@ class ESClusterMetrics < Sensu::Plugin::Metric::CLI::Graphite
109
109
  end
110
110
 
111
111
  def acquire_document_count
112
- document_count = get_es_resource('/_count?q=*:*')
113
- document_count['count']
112
+ document_count = get_es_resource('/_stats/docs')
113
+ document_count['_all']['total']['docs']['count']
114
114
  end
115
115
 
116
116
  def run
@@ -66,16 +66,34 @@ class ESMetrics < Sensu::Plugin::Metric::CLI::Graphite
66
66
  short: '-P PASS',
67
67
  long: '--password PASS'
68
68
 
69
- def run
69
+ def acquire_es_version
70
+ info = get_es_resource('/')
71
+ info['version']['number']
72
+ end
73
+
74
+ def get_es_resource(resource)
70
75
  headers = {}
71
76
  if config[:user] && config[:password]
72
77
  auth = 'Basic ' + Base64.encode64("#{config[:user]}:#{config[:password]}").chomp
73
78
  headers = { 'Authorization' => auth }
74
79
  end
75
- ln = RestClient::Resource.new "http://#{config[:host]}:#{config[:port]}/_cluster/nodes/_local", timeout: 30, headers: headers
76
- stats = RestClient::Resource.new "http://#{config[:host]}:#{config[:port]}/_cluster/nodes/_local/stats", timeout: 30, headers: headers
77
- ln = JSON.parse(ln.get)
78
- stats = JSON.parse(stats.get)
80
+ r = RestClient::Resource.new("http://#{config[:host]}:#{config[:port]}#{resource}", timeout: config[:timeout], headers: headers)
81
+ JSON.parse(r.get)
82
+ rescue Errno::ECONNREFUSED
83
+ warning 'Connection refused'
84
+ rescue RestClient::RequestTimeout
85
+ warning 'Connection timed out'
86
+ end
87
+
88
+ def run
89
+ if Gem::Version.new(acquire_es_version) >= Gem::Version.new('1.0.0')
90
+ ln = get_es_resource('/_nodes/_local')
91
+ stats = get_es_resource('/_nodes/_local/stats')
92
+ else
93
+ ln = get_es_resource('/_cluster/nodes/_local')
94
+ stats = get_es_resource('/_cluster/nodes/_local/stats')
95
+ end
96
+
79
97
  timestamp = Time.now.to_i
80
98
  node = stats['nodes'].values.first
81
99
  node['jvm']['mem']['heap_max_in_bytes'] = ln['nodes'].values.first['jvm']['mem']['heap_max_in_bytes']
@@ -74,7 +74,7 @@ module ElasticsearchQuery
74
74
  'filtered' => {
75
75
  'query' => {
76
76
  'query_string' => {
77
- 'default_field' => 'message',
77
+ 'default_field' => config[:search_field],
78
78
  'query' => config[:query]
79
79
  }
80
80
  },
@@ -97,6 +97,7 @@ module ElasticsearchQuery
97
97
  def es_date_math_string
98
98
  if config[:minutes_previous] == 0 && \
99
99
  config[:hours_previous] == 0 && \
100
+ config[:days_previous] == 0 && \
100
101
  config[:weeks_previous] == 0 && \
101
102
  config[:months_previous] == 0
102
103
  return nil
@@ -2,7 +2,7 @@ module SensuPluginsElasticsearch
2
2
  module Version
3
3
  MAJOR = 0
4
4
  MINOR = 3
5
- PATCH = 0
5
+ PATCH = 1
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.3.0
4
+ version: 0.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sensu Plugins and contributors
@@ -30,7 +30,7 @@ cert_chain:
30
30
  8sHuVruarogxxKPBzlL2is4EUb6oN/RdpGx2l4254+nyR+abg//Ed27Ym0PkB4lk
31
31
  HP0m8WSjZmFr109pE/sVsM5jtOCvogyujQOjNVGN4gz1wwPr
32
32
  -----END CERTIFICATE-----
33
- date: 2015-11-19 00:00:00.000000000 Z
33
+ date: 2015-12-29 00:00:00.000000000 Z
34
34
  dependencies:
35
35
  - !ruby/object:Gem::Dependency
36
36
  name: rest-client
@@ -203,7 +203,7 @@ dependencies:
203
203
  description: |-
204
204
  This plugin provides native ElasticSearch instrumentation
205
205
  for monitoring and metrics collection, including:
206
- service health and metrics for cluster, node, and more
206
+ service health and metrics for cluster, node, and more.
207
207
  email: "<sensu-users@googlegroups.com>"
208
208
  executables:
209
209
  - metrics-es-node.rb
metadata.gz.sig CHANGED
Binary file