sensu-plugins-solr 1.0.0 → 1.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
- SHA1:
3
- metadata.gz: 11992ac5ed0b5c14db0c4a7e437907b8c2fe49a3
4
- data.tar.gz: 049087c16e741bb495152c093b6a0e70c438db9d
2
+ SHA256:
3
+ metadata.gz: 72d62cfdf77fb555ccf841545ba26e20081dd34f2adfc85ebb9759c1f1a15f73
4
+ data.tar.gz: 60a31f9490e3128fc5de498a22ea9a027f5d8099114e363093e37805b7c827cd
5
5
  SHA512:
6
- metadata.gz: 2ec1725e02692f00ff41f3c66454fc2bf4704c71a538a5f85d332e514f8397ca367b708772bdfd1c1c2a689c2268b30d685d820d9fde07580ce81ae3d1c11fab
7
- data.tar.gz: 4430bf7a967284a10121d4b1a97a57b60dc208b508a291ebddfa1107832533904f38cf27f9bcbb8137213fbab892674139df292f2b178c733026cb490251ac57
6
+ metadata.gz: a3c60bd81d3590ff5ee8ad504cab35c3a0c8687e1fd1084e1a67e47dccdcc98059fb531c4427678df6b3fff6cdee928fa00cd8d581cbd32650e6edcb2b8b2daa
7
+ data.tar.gz: 700e078b60ab9ac33a48c96367732f3301f494175377341ab88656b1211995ee8cbc7919f7ab82f64f77f02a0ecbe12c19d163e4925e833529ced684cd80b5a1
@@ -1,10 +1,20 @@
1
1
  # Change Log
2
2
  This project adheres to [Semantic Versioning](http://semver.org/).
3
3
 
4
- This CHANGELOG follows the format listed at [Keep A Changelog](http://keepachangelog.com/)
4
+ This CHANGELOG follows the format listed [here](https://github.com/sensu-plugins/community/blob/master/HOW_WE_CHANGELOG.md)
5
5
 
6
6
  ## [Unreleased]
7
7
 
8
+ ## [1.1.0] - 2018-07-12
9
+ ### Added
10
+ - Added solr replication lag check (@alexbumbacea)
11
+
12
+ ### Changed
13
+ - updated link to changelog guidelines (@majormoses)
14
+
15
+ ### Fixed
16
+ - minor typos in PR template (@majormoses)
17
+
8
18
  ## [1.0.0] - 2017-05-10
9
19
  ### Added
10
20
  - Ruby 2.3 and 2.4 support (@eheydrick)
@@ -30,7 +40,8 @@ This CHANGELOG follows the format listed at [Keep A Changelog](http://keepachang
30
40
  ### Added
31
41
  - initial release
32
42
 
33
- [Unreleased]: https://github.com/sensu-plugins/sensu-plugins-solr/compare/1.0.0...HEAD
43
+ [Unreleased]: https://github.com/sensu-plugins/sensu-plugins-solr/compare/1.1.0...HEAD
44
+ [1.1.0]: https://github.com/sensu-plugins/sensu-plugins-solr/compare/1.0.0...1.1.0
34
45
  [1.0.0]: https://github.com/sensu-plugins/sensu-plugins-solr/compare/0.0.3...1.0.0
35
46
  [0.0.3]: https://github.com/sensu-plugins/sensu-plugins-solr/compare/0.0.2...0.0.3
36
47
  [0.0.2]: https://github.com/sensu-plugins/sensu-plugins-solr/compare/0.0.1...0.0.2
data/README.md CHANGED
@@ -12,6 +12,7 @@
12
12
  * bin/metrics-solr-graphite.rb
13
13
  * metrics-solr-v1.4graphite.rb
14
14
  * bin/metrics-solr4-graphite.rb
15
+ * bin/check-solr-replication-lag.rb
15
16
 
16
17
  ## Usage
17
18
 
@@ -0,0 +1,95 @@
1
+ #!/usr/bin/env ruby
2
+ #
3
+ # Check how behind replication is.
4
+ # ===
5
+ #
6
+ # Released under the same terms as Sensu (the MIT license); see LICENSE
7
+ # for details.
8
+
9
+ require 'sensu-plugin/check/cli'
10
+ require 'rest-client'
11
+ require 'json'
12
+ require 'date'
13
+
14
+ class SolrCheckReplication < Sensu::Plugin::Check::CLI
15
+ option :host,
16
+ short: '-h HOST',
17
+ long: '--host HOST',
18
+ description: 'Solr Host to connect to',
19
+ required: true
20
+
21
+ option :port,
22
+ short: '-p PORT',
23
+ long: '--port PORT',
24
+ description: 'Solr Port to connect to',
25
+ proc: proc(&:to_i),
26
+ required: true
27
+
28
+ option :protocol,
29
+ long: '--protocol PROTOCOL',
30
+ description: 'The connection protocol to use',
31
+ in: %w(http https), # this controls the acceptable inputs
32
+ default: 'http'
33
+
34
+ option :core,
35
+ description: 'Solr Core to check',
36
+ short: '-d CORE',
37
+ long: '--core CORE',
38
+ required: true
39
+
40
+ option :warning,
41
+ description: 'Warning if greater than X seconds',
42
+ short: '-w SECONDS',
43
+ proc: proc(&:to_i),
44
+ default: 1200
45
+
46
+ option :critical,
47
+ description: 'Critical if greater than X seconds',
48
+ short: '-c SECONDS',
49
+ proc: proc(&:to_i),
50
+ default: 3600
51
+
52
+ option :core_missing_ok,
53
+ short: '-x',
54
+ long: '--core-missing-ok',
55
+ description: 'Allow core to be missing (consider ok)',
56
+ boolean: true,
57
+ default: false
58
+
59
+ def get_url_json(url, notfoundok)
60
+ r = RestClient::Resource.new(url, timeout: 45)
61
+ JSON.parse(r.get)
62
+ rescue Errno::ECONNREFUSED
63
+ warning 'Connection refused'
64
+ rescue RestClient::RequestTimeout
65
+ warning 'Connection timed out'
66
+ rescue RestClient::ResourceNotFound
67
+ if notfoundok
68
+ ok "404 resource not found - #{url}"
69
+ else
70
+ warning "404 resource not found - #{url}"
71
+ end
72
+ rescue => e
73
+ warning "RestClient exception: #{e.class} -> #{e.message}"
74
+ end
75
+
76
+ def run
77
+ base_core_uri = "#{config[:protocol]}://#{config[:host]}:#{config[:port]}/solr/#{config[:core]}"
78
+ uri = "#{base_core_uri}/replication?command=details&wt=json"
79
+ data = get_url_json(uri, config[:core_missing_ok])
80
+ details = data['details']
81
+ if details['isSlave'] == 'true'
82
+ slave_details = details['slave']
83
+ lag = (DateTime.parse(slave_details['currentDate']).to_time - DateTime.parse(slave_details['indexReplicatedAt']).to_time).to_i
84
+ if lag >= config[:critical]
85
+ critical "Replication lag exceeds #{config[:critical]} seconds (#{lag})"
86
+ elsif lag >= config[:warning]
87
+ warning "Replication lag exceeds #{config[:warning]} seconds (#{lag})"
88
+ else
89
+ ok "Replication lag is ok (#{lag})"
90
+ end
91
+ else
92
+ ok 'this is not a slave host'
93
+ end
94
+ end
95
+ end
@@ -1,7 +1,7 @@
1
1
  module SensuPluginsSolr
2
2
  module Version
3
3
  MAJOR = 1
4
- MINOR = 0
4
+ MINOR = 1
5
5
  PATCH = 0
6
6
 
7
7
  VER_STRING = [MAJOR, MINOR, PATCH].compact.join('.')
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sensu-plugins-solr
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sensu-Plugins and contributors
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-05-11 00:00:00.000000000 Z
11
+ date: 2018-07-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: sensu-plugin
@@ -198,6 +198,7 @@ description: |-
198
198
  status, and a variety of metrics including memory consumption, open file counts, and more.
199
199
  email: "<sensu-users@googlegroups.com>"
200
200
  executables:
201
+ - check-solr-replication-lag.rb
201
202
  - metrics-solr-graphite.rb
202
203
  - metrics-solr-v1.4graphite.rb
203
204
  - metrics-solr4-graphite.rb
@@ -207,6 +208,7 @@ files:
207
208
  - CHANGELOG.md
208
209
  - LICENSE
209
210
  - README.md
211
+ - bin/check-solr-replication-lag.rb
210
212
  - bin/metrics-solr-graphite.rb
211
213
  - bin/metrics-solr-v1.4graphite.rb
212
214
  - bin/metrics-solr4-graphite.rb
@@ -238,7 +240,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
238
240
  version: '0'
239
241
  requirements: []
240
242
  rubyforge_project:
241
- rubygems_version: 2.4.5
243
+ rubygems_version: 2.7.7
242
244
  signing_key:
243
245
  specification_version: 4
244
246
  summary: Sensu plugins for solr