Documentation ¶
Index ¶
- type Finder
- type Fingerprint
- type InputConfig
- type InputOperator
- func (f *InputOperator) NewFingerprint(file *os.File) (*Fingerprint, error)
- func (f *InputOperator) NewReader(path string, file *os.File, fp *Fingerprint, splitter *helper.Splitter) (*Reader, error)
- func (f *InputOperator) Start(persister operator.Persister) error
- func (f *InputOperator) Stop() error
- type PositionalScanner
- type Reader
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Finder ¶
type Fingerprint ¶
type Fingerprint struct {
FirstBytes []byte
}
Fingerprint is used to identify a file A file's fingerprint is the first N bytes of the file, where N is the fingerprintSize on the file_input operator
func (Fingerprint) Copy ¶
func (f Fingerprint) Copy() *Fingerprint
Copy creates a new copy of the fingerprint
func (Fingerprint) StartsWith ¶
func (f Fingerprint) StartsWith(old *Fingerprint) bool
StartsWith returns true if the fingerprints are the same or if the new fingerprint starts with the old one This is important functionality for tracking new files, since their initial size is typically less than that of a fingerprint. As the file grows, its fingerprint is updated until it reaches a maximum size, as configured on the operator
type InputConfig ¶
type InputConfig struct { helper.InputConfig `mapstructure:",squash" yaml:",inline"` Finder `mapstructure:",squash" yaml:",inline"` PollInterval helper.Duration `` /* 133-byte string literal not displayed */ IncludeFileName bool `` /* 137-byte string literal not displayed */ IncludeFilePath bool `` /* 137-byte string literal not displayed */ IncludeFileNameResolved bool `` /* 146-byte string literal not displayed */ IncludeFilePathResolved bool `` /* 146-byte string literal not displayed */ StartAt string `` /* 128-byte string literal not displayed */ FingerprintSize helper.ByteSize `` /* 136-byte string literal not displayed */ MaxLogSize helper.ByteSize `` /* 132-byte string literal not displayed */ MaxConcurrentFiles int `` /* 140-byte string literal not displayed */ Encoding helper.EncodingConfig `` /* 127-byte string literal not displayed */ Splitter helper.SplitterConfig `` /* 127-byte string literal not displayed */ }
InputConfig is the configuration of a file input operator
func NewInputConfig ¶
func NewInputConfig(operatorID string) *InputConfig
NewInputConfig creates a new input config with default values
func (InputConfig) Build ¶
func (c InputConfig) Build(logger *zap.SugaredLogger) (operator.Operator, error)
Build will build a file input operator from the supplied configuration
type InputOperator ¶
type InputOperator struct { helper.InputOperator FilePathField entry.Field FileNameField entry.Field FilePathResolvedField entry.Field FileNameResolvedField entry.Field PollInterval time.Duration Splitter helper.SplitterConfig MaxLogSize int MaxConcurrentFiles int SeenPaths map[string]struct{} // contains filtered or unexported fields }
InputOperator is an operator that monitors files for entries
func (*InputOperator) NewFingerprint ¶
func (f *InputOperator) NewFingerprint(file *os.File) (*Fingerprint, error)
NewFingerprint creates a new fingerprint from an open file
func (*InputOperator) NewReader ¶
func (f *InputOperator) NewReader(path string, file *os.File, fp *Fingerprint, splitter *helper.Splitter) (*Reader, error)
NewReader creates a new file reader
func (*InputOperator) Start ¶
func (f *InputOperator) Start(persister operator.Persister) error
Start will start the file monitoring process
func (*InputOperator) Stop ¶
func (f *InputOperator) Stop() error
Stop will stop the file monitoring process
type PositionalScanner ¶
PositionalScanner is a scanner that maintains position
func NewPositionalScanner ¶
func NewPositionalScanner(r io.Reader, maxLogSize int, startOffset int64, splitFunc bufio.SplitFunc) *PositionalScanner
NewPositionalScanner creates a new positional scanner
func (*PositionalScanner) Pos ¶
func (ps *PositionalScanner) Pos() int64
Pos returns the current position of the scanner
type Reader ¶
type Reader struct { Fingerprint *Fingerprint Offset int64 *zap.SugaredLogger `json:"-"` // contains filtered or unexported fields }
Reader manages a single file
func (*Reader) InitializeOffset ¶
InitializeOffset sets the starting offset