Class: Riemann::Babbler::Plugin::FindFiles

Inherits:
Riemann::Babbler::Plugin show all
Defined in:
lib/riemann/babbler/plugins/find_files.rb

Constant Summary

Constants included from Riemann::Babbler::Plugins::Helpers

Riemann::Babbler::Plugins::Helpers::RIEMANN_RESERVED_FIELDS

Constants included from Errors

Errors::CONNECTION_PROBLEM, Errors::INIT_CONNECT, Errors::RESOLV_RIEMANN_SERVER, Errors::USER_CALL_SHUTDOWN

Instance Attribute Summary

Attributes inherited from Riemann::Babbler::Plugin

#errors, #plugin, #plugin_name, #riemann

Instance Method Summary collapse

Methods inherited from Riemann::Babbler::Plugin

#get_state, inherited, #initialize, #not_minimize_sent_event, #plugin_error!, #plugin_no_error!, registered_plugins, #report, #report_with_diff, #run!, #run_plugin, #set_default, #set_last_event, #tick

Methods included from Riemann::Babbler::Plugins::Helpers

#event_from_hash, #event_from_json, #rest_get, #shell, #unixnow

Methods included from Options

included, #merge_config, #name_to_underscore, #opts, #opts_reset!, #underscore_to_name

Methods included from Logging

#get_logger_speaker, included, #log, #set_logger_speaker

Constructor Details

This class inherits a constructor from Riemann::Babbler::Plugin

Instance Method Details

#collectObject



14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/riemann/babbler/plugins/find_files.rb', line 14

def collect
  return [] unless File.directory?(plugin.dir)
  count_files = 0
  file_mask   = Regexp.new(plugin.file_mask)
  Find.find(plugin.dir).each do |file|
    next unless File.file? file
    next unless file_mask.match file
    next unless Time.now.to_i - (plugin.age * 60) > File.new(file).mtime.to_i
    count_files += 1
  end
  { :service => plugin.service, :metric => count_files, :description => "Count files in #{plugin.dir}" }
end

#initObject



5
6
7
8
9
10
11
12
# File 'lib/riemann/babbler/plugins/find_files.rb', line 5

def init
  plugin.set_default(:service, 'find files')
  plugin.set_default(:interval, 60)
  plugin.set_default(:file_mask, '.*')       # file search mask
  plugin.set_default(:dir, '/tmp/directory') # search in dir
  plugin.set_default(:age, 1440)             # in minute
  plugin.states.set_default(:warning, 5)
end