Class: Megaraid::Collectd::Check

Inherits:
Object
  • Object
show all
Defined in:
lib/megaraid-collectd.rb

Instance Method Summary collapse

Constructor Details

#initialize(hostname = nil, interval = nil) ⇒ Check

Returns a new instance of Check.



8
9
10
11
12
# File 'lib/megaraid-collectd.rb', line 8

def initialize hostname=nil, interval=nil
  @hostname = hostname || DEFAULT_HOSTNAME
  @interval = interval || DEFAULT_INTERVAL
  @interval = interval.to_i
end

Instance Method Details

#runObject



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/megaraid-collectd.rb', line 14

def run
  while true
    init_stamp = Time.now.to_i
    if `megaclisas-status --nagios` =~ /^RAID ([a-zA-Z]+) - Arrays: OK:(\d+) Bad:(\d+) - Disks: OK:(\d+) Bad:(\d+)/
      array_ok = $2
      array_bad = $3
      disk_ok = $4
      disk_bad = $5

      puts "PUTVAL \"#{@hostname}/megaraid/gauge-array_ok\" interval=#{interval} N:#{array_ok}"
      puts "PUTVAL \"#{@hostname}/megaraid/gauge-array_bad\" interval=#{interval} N:#{array_bad}"
      puts "PUTVAL \"#{hostname}/megaraid/gauge-disk_ok\" interval=#{interval} N:#{disk_ok}"
      puts "PUTVAL \"#{hostname}/megaraid/gauge-disk_bad\" interval=#{interval} N:#{disk_bad}"
    end
    end_stamp = Time.now.to_i

    waitfor = @interval - (end_stamp - init_stamp)
    sleep waitfor if waitfor > 0
  end
end