Documentation ¶
Index ¶
- func NewLineEndSplitFunc(re *regexp.Regexp) bufio.SplitFunc
- func NewLineStartSplitFunc(re *regexp.Regexp) bufio.SplitFunc
- func NewNewlineSplitFunc(encoding encoding.Encoding) (bufio.SplitFunc, error)
- type Fingerprint
- type FingerprintUpdatingReader
- type InputConfig
- type InputOperator
- type MultilineConfig
- type PositionalScanner
- type Reader
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func NewLineEndSplitFunc ¶
NewLineEndSplitFunc creates a bufio.SplitFunc that splits an incoming stream into tokens that end with a match to the regex pattern provided
func NewLineStartSplitFunc ¶
NewLineStartSplitFunc creates a bufio.SplitFunc that splits an incoming stream into tokens that start with a match to the regex pattern provided
Types ¶
type Fingerprint ¶
type Fingerprint struct {
FirstBytes []byte
}
Fingerprint is used to identify a file
func NewFingerprint ¶
func NewFingerprint(file *os.File) (*Fingerprint, error)
NewFingerprint creates a new fingerprint from an open file
func (Fingerprint) Copy ¶
func (f Fingerprint) Copy() *Fingerprint
Copy creates a new copy of hte fingerprint
func (Fingerprint) Matches ¶
func (f Fingerprint) Matches(old *Fingerprint) bool
Matches returns true if the fingerprints are the same
type FingerprintUpdatingReader ¶
type FingerprintUpdatingReader struct {
// contains filtered or unexported fields
}
FingerprintUpdatingReader wraps another reader, and updates the fingerprint with each read in the first 1000 bytes
func NewFingerprintUpdatingReader ¶
func NewFingerprintUpdatingReader(r io.Reader, offset int64, f *Fingerprint) *FingerprintUpdatingReader
NewFingerprintUpdatingReader creates a new FingerprintUpdatingReader starting starting at the given offset
type InputConfig ¶
type InputConfig struct { helper.InputConfig `yaml:",inline"` Include []string `json:"include,omitempty" yaml:"include,omitempty"` Exclude []string `json:"exclude,omitempty" yaml:"exclude,omitempty"` PollInterval helper.Duration `json:"poll_interval,omitempty" yaml:"poll_interval,omitempty"` Multiline *MultilineConfig `json:"multiline,omitempty" yaml:"multiline,omitempty"` IncludeFileName bool `json:"include_file_name,omitempty" yaml:"include_file_name,omitempty"` IncludeFilePath bool `json:"include_file_path,omitempty" yaml:"include_file_path,omitempty"` StartAt string `json:"start_at,omitempty" yaml:"start_at,omitempty"` MaxLogSize int `json:"max_log_size,omitempty" yaml:"max_log_size,omitempty"` Encoding string `json:"encoding,omitempty" yaml:"encoding,omitempty"` }
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(context operator.BuildContext) (operator.Operator, error)
Build will build a file input operator from the supplied configuration
type InputOperator ¶
type InputOperator struct { helper.InputOperator Include []string Exclude []string FilePathField entry.Field FileNameField entry.Field PollInterval time.Duration SplitFunc bufio.SplitFunc MaxLogSize int // contains filtered or unexported fields }
InputOperator is an operator that monitors files for entries
func (*InputOperator) Start ¶
func (f *InputOperator) Start() error
Start will start the file monitoring process
func (*InputOperator) Stop ¶
func (f *InputOperator) Stop() error
Stop will stop the file monitoring process
type MultilineConfig ¶
type MultilineConfig struct { LineStartPattern string `json:"line_start_pattern" yaml:"line_start_pattern"` LineEndPattern string `json:"line_end_pattern" yaml:"line_end_pattern"` }
MultilineConfig is the configuration a multiline operation
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 Path string *zap.SugaredLogger `json:"-"` // contains filtered or unexported fields }
Reader manages a single file
func NewReader ¶
func NewReader(path string, f *InputOperator, file *os.File, fp *Fingerprint) (*Reader, error)
NewReader creates a new file reader
func (*Reader) InitializeOffset ¶
InitializeOffset sets the starting offset