harvester

package
v5.0.0-alpha1+incompat... Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 5, 2016 License: Apache-2.0 Imports: 13 Imported by: 0

Documentation

Overview

The harvester package harvest different inputs for new information. Currently two harvester types exist:

  • log
  • stdin

The log harvester reads a file line by line. In case the end of a file is found with an incomplete line, the line pointer stays at the beginning of the incomplete line. As soon as the line is completed, it is read and returned.

The stdin harvesters reads data from stdin.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func InitRegexps

func InitRegexps(exprs []string) ([]*regexp.Regexp, error)

InitRegexps initializes a list of compiled regular expressions.

func MatchAnyRegexps

func MatchAnyRegexps(regexps []*regexp.Regexp, text string) bool

MatchAnyRegexps checks if the text matches any of the regular expressions

Types

type FileSource

type FileSource interface {
	LogSource
	Stat() (os.FileInfo, error)
	Continuable() bool // can we continue processing after EOF?
}

type FileStat

type FileStat struct {
	Fileinfo      os.FileInfo /* the file info */
	Return        chan int64  /* the harvester will send an event with its offset when it closes */
	LastIteration uint32      /* int number of the last iterations in which we saw this file */
}

Contains statistic about file when it was last seend by the prospector

func NewFileStat

func NewFileStat(fi os.FileInfo, lastIteration uint32) *FileStat

func (*FileStat) Continue

func (fs *FileStat) Continue(old *FileStat)

func (*FileStat) Finished

func (fs *FileStat) Finished() bool

func (*FileStat) Ignore

func (fs *FileStat) Ignore()

Ignore forgets about the previous harvester results and let it continue on the old file - start a new channel to use with the new harvester.

func (*FileStat) Skip

func (fs *FileStat) Skip(returnOffset int64)

type Harvester

type Harvester struct {
	Path        string /* the file path to harvest */
	Config      *config.HarvesterConfig
	Offset      int64
	Stat        *FileStat
	SpoolerChan chan *input.FileEvent

	ExcludeLinesRegexp []*regexp.Regexp
	IncludeLinesRegexp []*regexp.Regexp
	// contains filtered or unexported fields
}

func NewHarvester

func NewHarvester(
	cfg *config.HarvesterConfig,
	path string,
	stat *FileStat,
	spooler chan *input.FileEvent,
) (*Harvester, error)

func (*Harvester) Harvest

func (h *Harvester) Harvest()

Log harvester reads files line by line and sends events to the defined output

func (*Harvester) Start

func (h *Harvester) Start()

type LogSource

type LogSource interface {
	io.ReadCloser
	Name() string
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL