Sha256: 67920dc06ff54e842ae018778254f34f3eec79eb01de3f206969ebab75570083

Contents?: true

Size: 1.31 KB

Versions: 8

Compression:

Stored size: 1.31 KB

Contents

#!/usr/bin/env ruby

$: << File.expand_path(File.join(File.dirname(__FILE__), '..', '..', '..'))

require 'lib/visage-app/patches'

module Visage
  module Collectd
    class RRDs

      class << self
        def rrddir
          @rrddir ||= Visage::Config.rrddir
        end

        def hosts(opts={})
          case
          when opts[:hosts].blank?
            glob = "*"
          when opts[:hosts] =~ /,/
            glob = "{#{opts[:hosts].strip.gsub(/\s*/, '').gsub(/,$/, '')}}"
          else
            glob = opts[:hosts]
          end

          Dir.glob("#{rrddir}/#{glob}").map {|e| e.split('/').last }.sort.uniq
        end

        def metrics(opts={})
          case
          when opts[:metrics].blank?
            glob = "*/*"
          when opts[:metrics] =~ /,/
            puts "\n" * 4
            glob = "{" + opts[:metrics].split(/\s*,\s*/).map { |m|
              m =~ /\// ? m : ["*/#{m}", "#{m}/*"]
            }.join(',').gsub(/,$/, '') + "}"
          when opts[:metrics] !~ /\//
            glob = "#{opts[:metrics]}/#{opts[:metrics]}"
          else
            glob = opts[:metrics]
          end

          host_glob = (opts[:host] || "*")

          Dir.glob("#{rrddir}/#{host_glob}/#{glob}.rrd").map {|e| e.split('/')[-2..-1].join('/').gsub(/\.rrd$/, '')}.sort.uniq
        end

      end

    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
visage-app-0.9.4 lib/visage-app/collectd/rrds.rb
visage-app-0.9.3 lib/visage-app/collectd/rrds.rb
visage-app-0.9.2 lib/visage-app/collectd/rrds.rb
visage-app-0.9.1 lib/visage-app/collectd/rrds.rb
visage-app-0.9.0.pre2 lib/visage-app/collectd/rrds.rb
visage-app-0.9.0 lib/visage-app/collectd/rrds.rb
visage-app-0.9.0.pre1 lib/visage-app/collectd/rrds.rb
visage-app-0.3.3 lib/visage-app/collectd/rrds.rb