riemann-babbler 2.5.4 → 2.5.5
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/lib/riemann/babbler/plugins/disk.rb +40 -5
- data/lib/riemann/babbler/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 90e56de248d738dad01c1b11d060ba3a245cd59a
|
4
|
+
data.tar.gz: c6b4be229437856a110fea11ac1c344c7b985cb9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d7da5a831710d13b4fda243fa804532bc53cb3dfe471eb31b99734b653bc1777bb75174ab021a603351d8fc2827877263cdc2b347318b89a164e674d236fc22f
|
7
|
+
data.tar.gz: b3a1f2159b23e51817e55eeb95457020fdf910e28ce0b7e88621fe1e5adea094343e2af312291f4e57d2ace00442d35d85f4a5135ba3c4f2b4f428b0f1952329
|
@@ -5,7 +5,12 @@ class Riemann::Babbler::Plugin::Disk < Riemann::Babbler::Plugin
|
|
5
5
|
require 'sys/filesystem'
|
6
6
|
include Sys
|
7
7
|
|
8
|
-
|
8
|
+
# check size:
|
9
|
+
NOT_MONITORING_FS_FOR_SIZE = %w(sysfs nfs devpts squashfs proc devtmpfs)
|
10
|
+
# fstab:
|
11
|
+
MONITORING_FS_FOR_FSTAB = %w(ext2 ext3 ext4 xfs tmpfs)
|
12
|
+
NOT_MONIT_DEVICE_FOR_FSTAB = %w(none)
|
13
|
+
NOT_MONITORING_POINT_FOR_FSTAB = %w(/lib/init/rw /dev/shm /dev)
|
9
14
|
|
10
15
|
def init
|
11
16
|
plugin.set_default(:service, 'disk')
|
@@ -13,19 +18,46 @@ class Riemann::Babbler::Plugin::Disk < Riemann::Babbler::Plugin
|
|
13
18
|
plugin.states.set_default(:critical, 85)
|
14
19
|
end
|
15
20
|
|
16
|
-
def
|
21
|
+
def get_fstab
|
22
|
+
fstab = File.read('/etc/fstab').split("\n").delete_if { |x| x.strip.match(/^#/) }
|
23
|
+
fstab.join("\n")
|
24
|
+
end
|
25
|
+
|
26
|
+
def get_monit_points_for_size
|
17
27
|
# собираем только необходимые для мониторинга маунт-поинты
|
18
28
|
# точнее выбираем из mounts только те, у которых fstype не попадает
|
19
|
-
# в
|
29
|
+
# в NOT_MONITORING_SIZE_FOR_FS
|
20
30
|
monit_points = []
|
21
31
|
File.open('/proc/mounts', 'r') do |file|
|
22
32
|
while (line = file.gets)
|
23
33
|
mtab = line.split(/\s+/)
|
24
|
-
monit_points << mtab[1] unless
|
34
|
+
monit_points << mtab[1] unless NOT_MONITORING_FS_FOR_SIZE.include? mtab[2]
|
25
35
|
end
|
26
36
|
end
|
37
|
+
monit_points
|
38
|
+
end
|
39
|
+
|
40
|
+
def get_monit_points_for_fstab
|
41
|
+
# выбираем из mounts только те, у которых fstype попадает
|
42
|
+
# в MONITORING_SIZE_FOR_FS
|
43
|
+
monit_points = []
|
44
|
+
File.open('/proc/mounts', 'r') do |file|
|
45
|
+
while (line = file.gets)
|
46
|
+
mtab = line.split(/\s+/)
|
47
|
+
if MONITORING_FS_FOR_FSTAB.include?(mtab[2]) &&
|
48
|
+
!NOT_MONITORING_POINT_FOR_FSTAB.include?(mtab[1]) &&
|
49
|
+
!NOT_MONIT_DEVICE_FOR_FSTAB.include?(mtab[0])
|
50
|
+
monit_points << mtab[1]
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
monit_points
|
55
|
+
end
|
56
|
+
|
57
|
+
def collect
|
58
|
+
fstab = get_fstab
|
27
59
|
disk = Array.new
|
28
|
-
|
60
|
+
get_monit_points_for_size.each do |point|
|
29
61
|
point_stat = Filesystem.stat point
|
30
62
|
human_point = point == '/' ? '/root' : point
|
31
63
|
human_point = human_point.gsub(/^\//, '').gsub(/\//, '_')
|
@@ -34,6 +66,9 @@ class Riemann::Babbler::Plugin::Disk < Riemann::Babbler::Plugin
|
|
34
66
|
disk << { :service => plugin.service + " #{human_point} abs free", :description => "Disk free #{point}, B", :metric => point_stat.blocks_free * point_stat.block_size, :state => 'ok' }
|
35
67
|
disk << { :service => plugin.service + " #{human_point} abs total", :description => "Disk space #{point}, B", :metric => point_stat.blocks * point_stat.block_size, :state => 'ok' }
|
36
68
|
end
|
69
|
+
get_monit_points_for_fstab.each do |point|
|
70
|
+
disk << { :service => plugin.service + " #{point} fstab entry", :description => "Mount point #{point} not matched in /etc/fstab", :state => 'critical' } unless fstab.match("#{point} ")
|
71
|
+
end
|
37
72
|
disk
|
38
73
|
end
|
39
74
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: riemann-babbler
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.5.
|
4
|
+
version: 2.5.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Vasiliev Dmitry
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-12-
|
11
|
+
date: 2013-12-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: riemann-client
|