Sha256: 4def8d30ad0c1116ee674463d62b2e1baad97d7b8a937f154f3d37d8b3ca281e
Contents?: true
Size: 1.53 KB
Versions: 2
Compression:
Stored size: 1.53 KB
Contents
#!/usr/bin/env ruby # Gathers the space used by a directory and submits it to riemann require File.expand_path('../../lib/riemann/tools', __FILE__) class Riemann::Tools::DirSpace include Riemann::Tools opt :directory, "", :default => '/var/log' opt :service_prefix, "The first part of the service name, before the directory path", :default => "dir-space" opt :warning, "Dir space warning threshold (in bytes)" opt :critical, "Dir space critical threshold (in bytes)" opt :alert_on_missing, "Send a critical metric if the directory is missing?", :default => true def initialize @dir = opts.fetch(:directory) @service_prefix = opts.fetch(:service_prefix) @warning = opts.fetch(:warning, nil) @critical = opts.fetch(:critical, nil) @alert_on_missing = opts.fetch(:alert_on_missing) end def tick if Dir.exists?(@dir) metric = `du '#{@dir}'`.lines.to_a.last.split("\t")[0].to_i report( :service => "#{@service_prefix} #{@dir}", :metric => metric, :state => state(metric), :tags => ['dir_space'] ) elsif @alert_on_missing report( :service => "#{@service_prefix} #{@dir} missing", :description => "#{@service_prefix} #{@dir} does not exist", :metric => metric, :state => 'critical', :tags => ['dir_space'] ) end end def state(metric) if @critical && metric > @critical 'critical' elsif @warning && metric > @warning 'warning' else 'ok' end end end Riemann::Tools::DirSpace.run
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
riemann-tools-0.2.5 | bin/riemann-dir-space |
riemann-tools-0.2.4 | bin/riemann-dir-space |