func (lj *logstash) init(cfg *ucfg.Config) error { config := defaultConfig if err := cfg.Unpack(&config); err != nil { return err } useTLS := (config.TLS != nil) timeout := time.Duration(config.Timeout) * time.Second sendRetries := config.MaxRetries maxAttempts := sendRetries + 1 if sendRetries < 0 { maxAttempts = 0 } var clients []mode.ProtocolClient var err error if useTLS { var tlsConfig *tls.Config tlsConfig, err = outputs.LoadTLSConfig(config.TLS) if err != nil { return err } clients, err = mode.MakeClients(cfg, makeClientFactory(&config, makeTLSClient(config.Port, tlsConfig))) } else { clients, err = mode.MakeClients(cfg, makeClientFactory(&config, makeTCPClient(config.Port))) } if err != nil { return err } logp.Info("Max Retries set to: %v", sendRetries) m, err := mode.NewConnectionMode(clients, !config.LoadBalance, maxAttempts, waitRetry, timeout, maxWaitRetry) if err != nil { return err } lj.mode = m lj.index = config.Index return nil }
func (lj *logstash) init(cfg *common.Config) error { config := defaultConfig if err := cfg.Unpack(&config); err != nil { return err } sendRetries := config.MaxRetries maxAttempts := sendRetries + 1 if sendRetries < 0 { maxAttempts = 0 } tls, err := outputs.LoadTLSConfig(config.TLS) if err != nil { return err } transp := &transport.Config{ Timeout: config.Timeout, Proxy: &config.Proxy, TLS: tls, } clients, err := mode.MakeClients(cfg, makeClientFactory(&config, transp)) if err != nil { return err } logp.Info("Max Retries set to: %v", sendRetries) m, err := mode.NewConnectionMode(clients, !config.LoadBalance, maxAttempts, defaultWaitRetry, config.Timeout, defaultMaxWaitRetry) if err != nil { return err } lj.mode = m lj.index = config.Index return nil }
func (out *elasticsearchOutput) init( cfg *ucfg.Config, topologyExpire int, ) error { config := defaultConfig if err := cfg.Unpack(&config); err != nil { return err } tlsConfig, err := outputs.LoadTLSConfig(config.TLS) if err != nil { return err } clients, err := mode.MakeClients(cfg, makeClientFactory(tlsConfig, &config)) if err != nil { return err } timeout := time.Duration(config.Timeout) * time.Second maxRetries := config.MaxRetries maxAttempts := maxRetries + 1 // maximum number of send attempts (-1 = infinite) if maxRetries < 0 { maxAttempts = 0 } var waitRetry = time.Duration(1) * time.Second var maxWaitRetry = time.Duration(60) * time.Second out.clients = clients loadBalance := config.LoadBalance m, err := mode.NewConnectionMode(clients, !loadBalance, maxAttempts, waitRetry, timeout, maxWaitRetry) if err != nil { return err } loadTemplate(config.Template, clients) if config.SaveTopology { err := out.EnableTTL() if err != nil { logp.Err("Fail to set _ttl mapping: %s", err) // keep trying in the background go func() { for { err := out.EnableTTL() if err == nil { break } logp.Err("Fail to set _ttl mapping: %s", err) time.Sleep(5 * time.Second) } }() } } out.TopologyExpire = 15000 if topologyExpire != 0 { out.TopologyExpire = topologyExpire * 1000 // millisec } out.mode = m out.index = config.Index return nil }
func (lj *logstash) init( config outputs.MothershipConfig, topologyExpire int, ) error { useTLS := (config.TLS != nil) timeout := logstashDefaultTimeout if config.Timeout != 0 { timeout = time.Duration(config.Timeout) * time.Second } defaultPort := logstashDefaultPort if config.Port != 0 { defaultPort = config.Port } maxWindowSize := defaultMaxWindowSize if config.BulkMaxSize != nil { maxWindowSize = *config.BulkMaxSize } compressLevel := defaultCompressionLevel if config.CompressionLevel != nil { compressLevel = *config.CompressionLevel } var clients []mode.ProtocolClient var err error if useTLS { var tlsConfig *tls.Config tlsConfig, err = outputs.LoadTLSConfig(config.TLS) if err != nil { return err } clients, err = mode.MakeClients(config, makeClientFactory(maxWindowSize, compressLevel, timeout, makeTLSClient(defaultPort, tlsConfig))) } else { clients, err = mode.MakeClients(config, makeClientFactory(maxWindowSize, compressLevel, timeout, makeTCPClient(defaultPort))) } if err != nil { return err } sendRetries := defaultSendRetries if config.MaxRetries != nil { sendRetries = *config.MaxRetries } logp.Info("Max Retries set to: %v", sendRetries) maxAttempts := sendRetries + 1 if sendRetries < 0 { maxAttempts = 0 } loadBalance := config.LoadBalance != nil && *config.LoadBalance m, err := mode.NewConnectionMode(clients, !loadBalance, maxAttempts, waitRetry, timeout, maxWaitRetry) if err != nil { return err } lj.mode = m lj.index = config.Index return nil }
func (r *redisOut) init(cfg *common.Config, expireTopo int) error { config := defaultConfig if err := cfg.Unpack(&config); err != nil { return err } sendRetries := config.MaxRetries maxAttempts := config.MaxRetries + 1 if sendRetries < 0 { maxAttempts = 0 } var dataType redisDataType switch config.DataType { case "", "list": dataType = redisListType case "channel": dataType = redisChannelType default: return errors.New("Bad Redis data type") } index := []byte(config.Index) if len(index) == 0 { return fmt.Errorf("missing %v", cfg.PathOf("index")) } tls, err := outputs.LoadTLSConfig(config.TLS) if err != nil { return err } transp := &transport.Config{ Timeout: config.Timeout, Proxy: &config.Proxy, TLS: tls, } // configure topology support r.topology.init(transp, topoConfig{ host: config.HostTopology, password: config.PasswordTopology, db: config.DbTopology, expire: time.Duration(expireTopo) * time.Second, }) // configure publisher clients clients, err := mode.MakeClients(cfg, func(host string) (mode.ProtocolClient, error) { t, err := transport.NewClient(transp, "tcp", host, config.Port) if err != nil { return nil, err } return newClient(t, config.Password, config.Db, index, dataType), nil }) if err != nil { return err } logp.Info("Max Retries set to: %v", sendRetries) m, err := mode.NewConnectionMode(clients, !config.LoadBalance, maxAttempts, defaultWaitRetry, config.Timeout, defaultMaxWaitRetry) if err != nil { return err } r.mode = m return nil }