Sha256: 49dfb738de526f9f79c1fb9a18875c34afedcc2be85b737d4ce9c4f33e5c97c9

Contents?: true

Size: 818 Bytes

Versions: 2

Compression:

Stored size: 818 Bytes

Contents

Struct.new("IOStat",
           :major, :minor, :dev,
           :rio, :rmerge, :rsect, :ruse,
           :wio, :wmerge, :wsect, :wuse,
           :running, :use, :aveq)

module Ganymed
  class Collector
    class IOStat < Base
      def collect!
        return if not File.readable?('/proc/diskstats')
        File.open('/proc/diskstats').each do |line|
          ios = Struct::IOStat.new(*line.strip.split(/\s+/))
          next if @config.skip_numbered.tap{} and ios.dev =~ /\d+$/
          next if @config.exclude.map {|e| Regexp.new(e).match(ios.dev)}.any?
          @sampler.emit(:derive, "os.iostat.#{ios.dev}.rsect", ios.rsect)
          @sampler.emit(:derive, "os.iostat.#{ios.dev}.wsect", ios.wsect)
        end
      end

      def interval
        @config.interval.tap{} or 0.2
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
ganymed-0.1.2 lib/ganymed/collector/iostat.rb
ganymed-0.1.1 lib/ganymed/collector/iostat.rb