Module: FileWatch

Defined in:
lib/filewatch/bootstrap.rb,
lib/filewatch/watch.rb,
lib/filewatch/settings.rb,
lib/filewatch/processor.rb,
lib/filewatch/discoverer.rb,
lib/filewatch/stat/generic.rb,
lib/filewatch/watched_file.rb,
lib/filewatch/sincedb_value.rb,
lib/filewatch/observing_base.rb,
lib/filewatch/observing_read.rb,
lib/filewatch/observing_tail.rb,
lib/filewatch/stat/windows_path.rb,
lib/filewatch/sincedb_collection.rb,
lib/filewatch/read_mode/processor.rb,
lib/filewatch/tail_mode/processor.rb,
lib/filewatch/read_mode/handlers/base.rb,
lib/filewatch/tail_mode/handlers/base.rb,
lib/filewatch/tail_mode/handlers/grow.rb,
lib/filewatch/watched_files_collection.rb,
lib/filewatch/sincedb_record_serializer.rb,
lib/filewatch/tail_mode/handlers/create.rb,
lib/filewatch/tail_mode/handlers/delete.rb,
lib/filewatch/tail_mode/handlers/shrink.rb,
lib/filewatch/tail_mode/handlers/timeout.rb,
lib/filewatch/tail_mode/handlers/unignore.rb,
lib/filewatch/read_mode/handlers/read_file.rb,
lib/filewatch/read_mode/handlers/read_zip_file.rb,
lib/filewatch/tail_mode/handlers/create_initial.rb

Overview

Interface API topology ObservingBase module (this file)

is a module mixin proving common constructor and external API for File Input Plugin interaction
calls build_specific_processor on ObservingRead or ObservingTail

ObservingRead and ObservingTail

provides the External API method subscribe(observer = NullObserver.new)
build_specific_processor(settings) - provide a Tail or Read specific Processor.

TailMode::Processor or ReadMode::Processor

initialize_handlers(sincedb_collection, observer) - called when the observer subscribes to changes in a Mode,
   builds mode specific handler instances with references to the observer
process_closed(watched_files) - provide specific processing of watched_files in the closed state
process_ignored(watched_files) - provide specific processing of watched_files in the ignored state
process_watched(watched_files) - provide specific processing of watched_files in the watched state
process_active(watched_files)  - provide specific processing of watched_files in the active state
   These methods can call "handler" methods that delegate to the specific Handler classes.

TailMode::Handlers module namespace

contains the Handler classes that deals with Tail mode file lifecycle "events".
The TailMode::Handlers::Base
   handle(watched_file) - this method calls handle_specifically defined in a subclass
   handle_specifically(watched_file) - this is a noop method
   update_existing_specifically(watched_file, sincedb_value) - this is a noop method
Each handler extends the Base class to provide specific implementations of these two methods:
   handle_specifically(watched_file)
   update_existing_specifically(watched_file, sincedb_value)

ReadMode::Handlers module namespace

contains the Handler classes that deals with Read mode file lifecycle "events".
The ReadMode::Handlers::Base
   handle(watched_file) - this method calls handle_specifically defined in a subclass
   handle_specifically(watched_file) - this is a noop method
Each handler extends the Base class to provide specific implementations of this method:
   handle_specifically(watched_file)

Defined Under Namespace

Modules: ObservingBase, ReadMode, Stat, TailMode Classes: BufferExtractResult, Discoverer, InodeStruct, LoopControlResult, NoSinceDBPathGiven, ObservingRead, ObservingTail, Processor, Settings, SincedbCollection, SincedbRecordSerializer, SincedbValue, Watch, WatchedFile, WatchedFilesCollection

Constant Summary collapse

FILE_READ_SIZE =

the number of bytes read from a file during the read phase

32768
MAX_ITERATIONS =

the largest fixnum in ruby this is used in the read loop e.g. @opts.times do where file_chunk_count defaults to this constant

(2**(0.size * 8 - 2) - 2) / 32768
PathStatClass =
Stat::Generic
FileOpener =
::File
OPEN_WARN_INTERVAL =

how often (in seconds) we logger.warn a failed file open, per path.

ENV.fetch("FILEWATCH_OPEN_WARN_INTERVAL", 300).to_i
MAX_FILES_WARN_INTERVAL =
ENV.fetch("FILEWATCH_MAX_FILES_WARN_INTERVAL", 20).to_i