sumo-check-es 0.0.11 → 0.0.12
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 +4 -4
- data/bin/sumo-check-snapshots.rb +87 -0
- metadata +3 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: eb6002b7bb543c0248f347773c5eda54b1c6a624
|
4
|
+
data.tar.gz: 3c4dac0d25bd9bf13531b7272445955554ff4fae
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1b1af89486529f39e8e97cff779cbb5274efb100405dd8329696106af144651ec5617d838c01c6fcb107f4823925f11a94fea696a43b122ece8e11a392a3cad1
|
7
|
+
data.tar.gz: 18c7912fe574103cc5e0d0ebace3a78827b9d239e16e3cef511cfd2d7acd5a1d48c9e4e9c7bf980347ebb9610aa6080760a546cb88f492667e10526d3c670ed6
|
@@ -0,0 +1,87 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
require 'net/http'
|
3
|
+
require 'json'
|
4
|
+
require 'uri'
|
5
|
+
require 'sensu-plugin/check/cli'
|
6
|
+
|
7
|
+
# IN_PROGRESS
|
8
|
+
# The snapshot is currently running.
|
9
|
+
#
|
10
|
+
# SUCCESS
|
11
|
+
# The snapshot finished and all shards were stored successfully.
|
12
|
+
#
|
13
|
+
# FAILED
|
14
|
+
# The snapshot finished with an error and failed to store any data.
|
15
|
+
#
|
16
|
+
# PARTIAL
|
17
|
+
# The global cluster state was stored, but data of at least one
|
18
|
+
# shard wasn’t stored successfully. The failure section in this
|
19
|
+
# case should contain more detailed information about shards
|
20
|
+
# that were not processed correctly.
|
21
|
+
#
|
22
|
+
# INCOMPATIBLE
|
23
|
+
# The snapshot was created with an old version of Elasticsearch
|
24
|
+
# and therefore is incompatible with the current version of the cluster.
|
25
|
+
|
26
|
+
|
27
|
+
|
28
|
+
class SensuCheckSnapshotStatus < Sensu::Plugin::Check::CLI
|
29
|
+
|
30
|
+
@@es_ok_status_list =["IN_PROGRESS","SUCCESS","STARTED"]
|
31
|
+
@@es_failed_status_list =["FAILED","PARTIAL","INCOMPATIBLE","ABORTED"]
|
32
|
+
|
33
|
+
option :server,
|
34
|
+
short: '-s http://localhost:9200',
|
35
|
+
description: 'Hostname of Elastic Search Cluster',
|
36
|
+
default: 'http://localhost:9200'
|
37
|
+
|
38
|
+
option :snapshot_location,
|
39
|
+
short: '-d junk_snapshot_name',
|
40
|
+
description: 'Name of snapshot location',
|
41
|
+
default: 'junk_snapshot_name'
|
42
|
+
|
43
|
+
option :min_num_snapshots,
|
44
|
+
short: '-n 7',
|
45
|
+
description: 'Mininum number of snapshots allowed',
|
46
|
+
default: 7
|
47
|
+
|
48
|
+
option :max_num_snapshots,
|
49
|
+
short: '-m 9',
|
50
|
+
description: 'Maximum number of snapshots allowed',
|
51
|
+
default: 9
|
52
|
+
|
53
|
+
def get_snapshots()
|
54
|
+
uri = URI(config[:server].strip)
|
55
|
+
uri.path = "/_snapshot/#{config[:snapshot_location]}/_all"
|
56
|
+
result={}
|
57
|
+
http = Net::HTTP.new(uri.host, uri.port)
|
58
|
+
req = Net::HTTP::Get.new(uri)
|
59
|
+
res = http.request(req)
|
60
|
+
result["status"]= res.code
|
61
|
+
result["body"]= JSON.parse(res.body)
|
62
|
+
return result
|
63
|
+
end
|
64
|
+
|
65
|
+
def run
|
66
|
+
error_msgs=[]
|
67
|
+
data = get_snapshots
|
68
|
+
|
69
|
+
data["body"]["snapshots"].each do |snap|
|
70
|
+
if @@es_failed_status_list.include? snap["state"]
|
71
|
+
error_msgs.push({:snapshot=>snap["snapshot"],:state=>snap["state"],:failures=>snap["failures"]})
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
if !data["body"]["snapshots"].length.between?(config[:min_num_snapshots],config[:max_num_snapshots])
|
76
|
+
error_msgs.push("snapshot count at #{data["body"]["snapshots"].length} is outside of allowed range of #{config[:min_num_snapshots]} to #{config[:max_num_snapshots]}")
|
77
|
+
end
|
78
|
+
|
79
|
+
if error_msgs.length == 0
|
80
|
+
ok("snapshot status is ok")
|
81
|
+
else
|
82
|
+
critical(error_msgs.to_s)
|
83
|
+
end
|
84
|
+
|
85
|
+
end
|
86
|
+
|
87
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sumo-check-es
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.12
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dr. Ogg
|
@@ -115,12 +115,14 @@ executables:
|
|
115
115
|
- sumo-metric-es_subscriber_rate.rb
|
116
116
|
- sumo-metric-events_rate.rb
|
117
117
|
- sumo-metric-es_thread_pool.rb
|
118
|
+
- sumo-check-snapshots.rb
|
118
119
|
extensions: []
|
119
120
|
extra_rdoc_files: []
|
120
121
|
files:
|
121
122
|
- bin/sumo-check-es_subscriber_rate.rb
|
122
123
|
- bin/sumo-check-es_subscriber_status.rb
|
123
124
|
- bin/sumo-check-events_rate.rb
|
125
|
+
- bin/sumo-check-snapshots.rb
|
124
126
|
- bin/sumo-metric-es_subscriber_rate.rb
|
125
127
|
- bin/sumo-metric-es_thread_pool.rb
|
126
128
|
- bin/sumo-metric-events_rate.rb
|