onering-report-plugins 0.0.1 → 0.0.2

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.
@@ -3,46 +3,6 @@
3
3
  #
4
4
 
5
5
  report do
6
- # ------------------------------------------------------------------------------
7
- # filesystem
8
- #
9
- stats_fs = {}
10
- current_dev = nil
11
-
12
- # logical mounts
13
- File.open("/etc/mtab").each do |line|
14
- dev,mount,fstype,flags,dump,pass = line.split(/\s+/)
15
-
16
- stats_fs[dev] = {
17
- :mount => mount,
18
- :device => dev,
19
- :filesystem => fstype,
20
- :flags => flags.split(/\s*,\s*/)
21
- }
22
- end
23
-
24
- # logical space utilization
25
- IO.popen("df").lines.each do |line|
26
- next if line =~ /^Filesystem/
27
- parts = line.split(/\s+/)
28
-
29
- if parts.length == 1
30
- current_dev = parts.first
31
- next
32
-
33
- else
34
- dev,kblk,used,free,percent,mount = parts
35
- dev = current_dev if dev.empty?
36
- next unless stats_fs[dev] and stats_fs[dev].is_a?(Hash)
37
-
38
- stats_fs[dev][:used] = (used.to_i * 1024)
39
- stats_fs[dev][:available] = (free.to_i * 1024)
40
- stats_fs[dev][:total] = (stats_fs[dev][:available] + stats_fs[dev][:used])
41
- stats_fs[dev][:percent_used] = percent.delete('%').to_i
42
- end
43
- end
44
-
45
-
46
6
  # ------------------------------------------------------------------------------
47
7
  # memory
48
8
  #
@@ -85,10 +45,10 @@ report do
85
45
  # ------------------------------------------------------------------------------
86
46
  # set stat properties
87
47
  #
88
- stat :disk, stats_fs.select{|k,v| k =~ /^\/dev\/((h|s|xv|v)d|mapper)/ }.values rescue []
89
48
  stat :memory, stats_mem
90
49
  stat :cpu, ({
91
- 'count' => stats_cpu[:count].to_i,
92
- 'speed' => stats_cpu[:processors].collect{|i| i[:speed] }.compact.uniq.sort{|a,b| a.to_f <=> b.to_f }.last.to_f
50
+ 'count' => Facter.value('processorcount'),
51
+ 'physical' => Facter.value('physicalprocessorcount'),
52
+ 'speed' => stats_cpu[:processors].collect{|i| i[:speed] }.compact.uniq.sort{|a,b| a.to_f <=> b.to_f }.last.to_f
93
53
  } rescue nil)
94
54
  end
@@ -0,0 +1,110 @@
1
+ # Onering Collector - Disk Statistics plugin
2
+ # provides data on disks, mounts, and RAID configuration
3
+ #
4
+
5
+ report do
6
+ # ------------------------------------------------------------------------------
7
+ # mounts
8
+ #
9
+ mounts = {}
10
+ current_dev = nil
11
+
12
+ File.open("/etc/mtab").each do |line|
13
+ dev,mount,fstype,flags,dump,pass = line.split(/\s+/)
14
+
15
+ mounts[dev] = {
16
+ :mount => mount,
17
+ :device => dev,
18
+ :filesystem => fstype,
19
+ :flags => flags.split(/\s*,\s*/)
20
+ }
21
+ end
22
+
23
+ # logical space utilization
24
+ IO.popen("df").lines.each do |line|
25
+ next if line =~ /^Filesystem/
26
+ parts = line.split(/\s+/)
27
+
28
+ if parts.length == 1
29
+ current_dev = parts.first
30
+ next
31
+
32
+ else
33
+ dev,kblk,used,free,percent,mount = parts
34
+ dev = current_dev if dev.empty?
35
+ next unless mounts[dev] and mounts[dev].is_a?(Hash)
36
+
37
+ mounts[dev][:used] = (used.to_i * 1024)
38
+ mounts[dev][:available] = (free.to_i * 1024)
39
+ mounts[dev][:total] = (mounts[dev][:available] + mounts[dev][:used])
40
+ mounts[dev][:percent_used] = percent.delete('%').to_i
41
+ end
42
+ end
43
+
44
+
45
+ # ------------------------------------------------------------------------------
46
+ # LVM
47
+ #
48
+ vg = {}
49
+
50
+ # volume groups
51
+ IO.popen("vgdisplay -c").lines.each do |line|
52
+ line = line.strip.chomp.split(':')
53
+
54
+ vg[line[0]] = {
55
+ :name => line[0],
56
+ :uuid => line[16],
57
+ :size => (line[11].to_i*1024),
58
+ :extents => {
59
+ :size => (line[12].to_i * 1024),
60
+ :total => line[13].to_i,
61
+ :allocated => line[14].to_i,
62
+ :free => line[15].to_i
63
+ },
64
+ :volumes => [],
65
+ :disks => []
66
+ }
67
+ end
68
+
69
+ # logical volumes
70
+ IO.popen("lvdisplay -c").lines.each do |line|
71
+ line = line.strip.chomp.split(':')
72
+
73
+ unless vg[line[1]].nil?
74
+ vg[line[1]][:volumes] << {
75
+ :name => line[0],
76
+ :sectors => line[6].to_i,
77
+ :extents => line[7].to_i,
78
+ :size => (vg[line[1]][:extents][:size] * line[7].to_i)
79
+ }
80
+ end
81
+ end
82
+
83
+
84
+ # physical volumes
85
+ IO.popen("pvdisplay -c").lines.each do |line|
86
+ line = line.strip.chomp.split(':')
87
+
88
+ unless vg[line[1]].nil?
89
+ vg[line[1]][:disks] << {
90
+ :name => line[0],
91
+ :uuid => line[11].to_i,
92
+ :size => (line[2].to_i * 1024),
93
+ :extents => {
94
+ :size => (line[7].to_i * 1024),
95
+ :total => line[8].to_i,
96
+ :allocated => line[10].to_i,
97
+ :free => line[9].to_i
98
+ }
99
+ }
100
+ end
101
+ end
102
+
103
+
104
+ stat :disk, {
105
+ :mounts => (Hash[mounts.select{|k,v| k =~ /^\/dev\/((h|s|xv|v)d|mapper)/ }].values rescue nil),
106
+ :lvm => {
107
+ :groups => vg.values
108
+ }
109
+ }
110
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: onering-report-plugins
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -13,7 +13,7 @@ date: 2013-04-09 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: onering-client
16
- requirement: &18089540 !ruby/object:Gem::Requirement
16
+ requirement: &19860780 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,7 +21,7 @@ dependencies:
21
21
  version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *18089540
24
+ version_requirements: *19860780
25
25
  description: Base plugins for providing system information via the Onering client
26
26
  utility
27
27
  email: ghetzel@outbrain.com
@@ -38,6 +38,7 @@ files:
38
38
  - lib/facter/onering_properties_xen.rb
39
39
  - lib/reporter/default/properties_physical.rb
40
40
  - lib/reporter/default/properties_facter.rb
41
+ - lib/reporter/default/stats_disk.rb
41
42
  - lib/reporter/default/properties_xen.rb
42
43
  - lib/reporter/default/properties_chef.rb
43
44
  - lib/reporter/default/stats_network.rb