sensu-plugins-lvm-thinpools 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,15 @@
1
+ ---
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ YTQ1NGQ1ZjNhYjJjYWE4Yjc3YTU5YTEwNzhkNjk5MTIzMWQwNDEyNA==
5
+ data.tar.gz: !binary |-
6
+ NzVhYzdmMTY0MzczNWFlMzM4YzczY2RhZWYxNDAzNjE3YjQxMjFlZg==
7
+ SHA512:
8
+ metadata.gz: !binary |-
9
+ YWZiYmIwZDczMTMyNDg3ZjVmNTBlZmI4MmIwZjkzZWQ0MDA2ZWVjOWQwMTE4
10
+ MTNkYTBlNDc2ZTIzMmNmMTE4MGQ5NGM1MjBhZmZkN2NmMjA5YTU3NTFmNjFh
11
+ YTYzM2M1MzMyNjUxMzY2NjEwYzFiNzVlNzNmNTIyNGRhMDY1Y2E=
12
+ data.tar.gz: !binary |-
13
+ NmU0Njk0YjEzMzFlYzQxZTdjOGUyYjIxMTdjNTZmZDI1ZDc0ZTFlYzMzODcy
14
+ ZWMxYzYxOWFlMDEyZGNiZmI2ZmRjOTlmYWNhNGY0OGM1NGE1OTgwOTg5ZWE5
15
+ YTBjYjcyZGNlNmFlMTE0MmUyOWU1ZjIwOGE2NzE2NTI3YzgyZmU=
@@ -0,0 +1,85 @@
1
+ #! /usr/bin/env ruby
2
+ #
3
+ # check-lvm-thinpools.rb
4
+ #
5
+ # DESCRIPTION:
6
+ # => Check if the lvm thinpools are within appropriate ranges
7
+ #
8
+ # OUTPUT:
9
+ # plain text
10
+ #
11
+ # PLATFORMS:
12
+ # Linux
13
+ #
14
+ # DEPENDENCIES:
15
+ # gem: sensu-plugin
16
+ #
17
+ # USAGE:
18
+ # -c CRITICAL - Percentage at which a critical is sent
19
+ # -w WARNING - Percentage at which a warning is sent
20
+ #
21
+ # LICENSE:
22
+ # Chris McFee <cmcfee@kent.edut>
23
+ # Release under the same terms as Sensu (the MIT license); see LICENSE
24
+ # for details.
25
+ #
26
+
27
+ require 'sensu-plugin/check/cli'
28
+
29
+ class CheckThinpool < Sensu::Plugin::Check::CLI
30
+ option :warn,
31
+ short: '-w WARN',
32
+ default: 75.00
33
+
34
+ option :crit,
35
+ short: '-c CRIT',
36
+ default: 90.00
37
+
38
+ def initialize
39
+ super
40
+ @crit_lvm = []
41
+ @warn_lvm = []
42
+ end
43
+
44
+ def lvm_thinpools
45
+ lvs_output = `lvs --noheadings --separator : -o lv_attr,lv_name,data_percent,metadata_percent`
46
+ thinpools = []
47
+ lvs_output.split("\n").each do |line|
48
+ lv_array = line.split(':')
49
+ next unless lv_array[0].include? 't'
50
+ lv_hash = {}
51
+ lv_hash['lv_attr'] = lv_array[0]
52
+ lv_hash['lv_name'] = lv_array[1]
53
+ lv_hash['data_percent'] = lv_array[2].to_f
54
+ lv_hash['metadata_percent'] = lv_array[3].to_f
55
+ thinpools.push(lv_hash)
56
+ end
57
+
58
+ thinpools
59
+ end
60
+
61
+ def check_thinpools
62
+ lvm_thinpools.each do |lvm_thinpool|
63
+ if lvm_thinpool['data_percent'] >= config[:crit]
64
+ @crit_lvm << "#{lvm_thinpool['lv_name']} #{lvm_thinpool['data_percent']}% data"
65
+ elsif lvm_thinpool['metadata_percent'] >= config[:crit]
66
+ @crit_lvm << "#{lvm_thinpool['lv_name']} #{lvm_thinpool['metadata_percent']}% metadata"
67
+ elsif lvm_thinpool['data_percent'] >= config[:warn]
68
+ @warn_lvm << "#{lvm_thinpool['lvm_thinpool']} #{lvm_thinpool['data_percent']}% data"
69
+ elsif lvm_thinpool['metadata_percent'] >= config[:warn]
70
+ @warn_lvm << "#{lvm_thinpool['lv_name']} #{lvm_thinpool['metadata_percent']}% metadata"
71
+ end
72
+ end
73
+ end
74
+
75
+ def usage_summary
76
+ (@crit_lvm + @warn_lvm).join(', ')
77
+ end
78
+
79
+ def run
80
+ check_thinpools
81
+ critical usage_summary unless @crit_lvm.empty?
82
+ warning usage_summary unless @warn_lvm.empty?
83
+ ok "All thinpool usage under #{config[:warn]}%"
84
+ end
85
+ end
@@ -0,0 +1 @@
1
+ require 'sensu-plugins-lvm-thinpools/version'
@@ -0,0 +1,9 @@
1
+ module SensuPluginsLvmThinpools
2
+ module Version
3
+ MAJOR = 0
4
+ MINOR = 0
5
+ PATCH = 2
6
+
7
+ VER_STRING = [MAJOR, MINOR, PATCH].compact.join('.')
8
+ end
9
+ end
metadata ADDED
@@ -0,0 +1,190 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: sensu-plugins-lvm-thinpools
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.2
5
+ platform: ruby
6
+ authors:
7
+ - mickfeech and contributors
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2016-04-20 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: sensu-plugin
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ~>
18
+ - !ruby/object:Gem::Version
19
+ version: '1.2'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ~>
25
+ - !ruby/object:Gem::Version
26
+ version: '1.2'
27
+ - !ruby/object:Gem::Dependency
28
+ name: bundler
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ~>
32
+ - !ruby/object:Gem::Version
33
+ version: '1.7'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ~>
39
+ - !ruby/object:Gem::Version
40
+ version: '1.7'
41
+ - !ruby/object:Gem::Dependency
42
+ name: codeclimate-test-reporter
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ~>
46
+ - !ruby/object:Gem::Version
47
+ version: '0.4'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ~>
53
+ - !ruby/object:Gem::Version
54
+ version: '0.4'
55
+ - !ruby/object:Gem::Dependency
56
+ name: github-markup
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ~>
60
+ - !ruby/object:Gem::Version
61
+ version: '1.3'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ~>
67
+ - !ruby/object:Gem::Version
68
+ version: '1.3'
69
+ - !ruby/object:Gem::Dependency
70
+ name: pry
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ~>
74
+ - !ruby/object:Gem::Version
75
+ version: '0.10'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ~>
81
+ - !ruby/object:Gem::Version
82
+ version: '0.10'
83
+ - !ruby/object:Gem::Dependency
84
+ name: rake
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ~>
88
+ - !ruby/object:Gem::Version
89
+ version: '10.5'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ~>
95
+ - !ruby/object:Gem::Version
96
+ version: '10.5'
97
+ - !ruby/object:Gem::Dependency
98
+ name: redcarpet
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ~>
102
+ - !ruby/object:Gem::Version
103
+ version: '3.2'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ~>
109
+ - !ruby/object:Gem::Version
110
+ version: '3.2'
111
+ - !ruby/object:Gem::Dependency
112
+ name: rubocop
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ~>
116
+ - !ruby/object:Gem::Version
117
+ version: '0.37'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ~>
123
+ - !ruby/object:Gem::Version
124
+ version: '0.37'
125
+ - !ruby/object:Gem::Dependency
126
+ name: rspec
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - ~>
130
+ - !ruby/object:Gem::Version
131
+ version: '3.4'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - ~>
137
+ - !ruby/object:Gem::Version
138
+ version: '3.4'
139
+ - !ruby/object:Gem::Dependency
140
+ name: yard
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - ~>
144
+ - !ruby/object:Gem::Version
145
+ version: '0.8'
146
+ type: :development
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - ~>
151
+ - !ruby/object:Gem::Version
152
+ version: '0.8'
153
+ description: Plugins to provide functionality to check lvm thinpools for Sensu, a
154
+ monitoring framework
155
+ email:
156
+ - cmcfee@kent.edu
157
+ executables:
158
+ - check-lvm-thinpools.rb
159
+ extensions: []
160
+ extra_rdoc_files: []
161
+ files:
162
+ - bin/check-lvm-thinpools.rb
163
+ - lib/sensu-plugins-lvm-thinpools.rb
164
+ - lib/sensu-plugins-lvm-thinpools/version.rb
165
+ homepage: https://github.com/mickfeech/sensu-plugins-lvm-thinpools
166
+ licenses:
167
+ - MIT
168
+ metadata: {}
169
+ post_install_message:
170
+ rdoc_options: []
171
+ require_paths:
172
+ - lib
173
+ required_ruby_version: !ruby/object:Gem::Requirement
174
+ requirements:
175
+ - - ! '>='
176
+ - !ruby/object:Gem::Version
177
+ version: '0'
178
+ required_rubygems_version: !ruby/object:Gem::Requirement
179
+ requirements:
180
+ - - ! '>='
181
+ - !ruby/object:Gem::Version
182
+ version: '0'
183
+ requirements: []
184
+ rubyforge_project:
185
+ rubygems_version: 2.4.5
186
+ signing_key:
187
+ specification_version: 4
188
+ summary: This provides functionality to check lvm thinpools, like those that can be
189
+ utilized for docker.
190
+ test_files: []