func initConnectionMode( cfg *common.Config, config *logstashConfig, transp *transport.Config, ) (mode.ConnectionMode, error) { sendRetries := config.MaxRetries maxAttempts := sendRetries + 1 if sendRetries < 0 { maxAttempts = 0 } settings := modeutil.Settings{ Failover: !config.LoadBalance, MaxAttempts: maxAttempts, Timeout: config.Timeout, WaitRetry: defaultWaitRetry, MaxWaitRetry: defaultMaxWaitRetry, } if config.Pipelining == 0 { clients, err := modeutil.MakeClients(cfg, makeClientFactory(config, transp)) if err != nil { return nil, err } return modeutil.NewConnectionMode(clients, settings) } clients, err := modeutil.MakeAsyncClients(cfg, makeAsyncClientFactory(config, transp)) if err != nil { return nil, err } return modeutil.NewAsyncConnectionMode(clients, settings) }
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, Stats: &transport.IOStats{ Read: statReadBytes, Write: statWriteBytes, ReadErrors: statReadErrors, WriteErrors: statWriteErrors, }, } logp.Info("Max Retries set to: %v", sendRetries) var m mode.ConnectionMode if config.Pipelining == 0 { clients, err := modeutil.MakeClients(cfg, makeClientFactory(&config, transp)) if err == nil { m, err = modeutil.NewConnectionMode(clients, !config.LoadBalance, maxAttempts, defaultWaitRetry, config.Timeout, defaultMaxWaitRetry) } } else { clients, err := modeutil.MakeAsyncClients(cfg, makeAsyncClientFactory(&config, transp)) if err == nil { m, err = modeutil.NewAsyncConnectionMode(clients, !config.LoadBalance, maxAttempts, defaultWaitRetry, config.Timeout, defaultMaxWaitRetry) } } if err != nil { return err } lj.mode = m lj.index = config.Index return nil }