// NewOutput instantiates a new output plugin instance publishing to elasticsearch. func (f elasticsearchOutputPlugin) NewOutput( config *outputs.MothershipConfig, topologyExpire int, ) (outputs.Outputer, error) { // configure bulk size in config in case it is not set if config.BulkMaxSize == nil { bulkSize := defaultBulkSize config.BulkMaxSize = &bulkSize } output := &elasticsearchOutput{} err := output.init(*config, topologyExpire) if err != nil { return nil, err } return output, nil }
func (out *fileOutput) init(config *outputs.MothershipConfig, topology_expire int) error { out.rotator.Path = config.Path out.rotator.Name = config.Filename if out.rotator.Name == "" { out.rotator.Name = config.Index } logp.Info("File output base filename set to: %v", out.rotator.Name) // disable bulk support configDisableInt := -1 config.FlushInterval = &configDisableInt config.BulkMaxSize = &configDisableInt rotateeverybytes := uint64(config.RotateEveryKb) * 1024 if rotateeverybytes == 0 { rotateeverybytes = 10 * 1024 * 1024 } logp.Info("Rotate every bytes set to: %v", rotateeverybytes) out.rotator.RotateEveryBytes = &rotateeverybytes keepfiles := config.NumberOfFiles if keepfiles == 0 { keepfiles = 7 } logp.Info("Number of files set to: %v", keepfiles) out.rotator.KeepFiles = &keepfiles err := out.rotator.CreateDirectory() if err != nil { return err } err = out.rotator.CheckIfConfigSane() if err != nil { return err } return nil }