producer/producer_config.go (65 lines of code) (raw):
package producer
import (
"net/http"
"time"
sls "github.com/aliyun/aliyun-log-go-sdk"
"github.com/go-kit/kit/log"
)
const Delimiter = "|"
type UpdateStsTokenFunc = func() (accessKeyID, accessKeySecret, securityToken string, expireTime time.Time, err error)
type ProducerConfig struct {
TotalSizeLnBytes int64
MaxIoWorkerCount int64
MaxBlockSec int
MaxBatchSize int64
MaxBatchCount int
LingerMs int64
Retries int
MaxReservedAttempts int
BaseRetryBackoffMs int64
MaxRetryBackoffMs int64
AdjustShargHash bool
Buckets int
// Optional, defaults to nil.
// The logger is used to record the runtime status of the consumer.
// The logs generated by the logger will only be stored locally.
// The parameters AllowLogLevel/LogFileName/LogMaxSize/LogMaxBackups/LogCompass
// are ignored if the Logger is not nil.
Logger log.Logger
// Optional, defaults to info.
// AllowLogLevel can be debug/info/warn/error, set the minimum level of the log to be recorded.
AllowLogLevel string
// Optional.
// Setting Log File Path,eg: "/root/log/log_file.log". if not set, the log will go to stdout.
LogFileName string
// Optional, defaults to false.
// Set whether the log output type is JSON.
IsJsonType bool
// Optional, defaults to 100, in megabytes.
// MaxSize is the maximum size in megabytes of the log file before it gets rotated.
LogMaxSize int
// Optional, defaults to 10.
// MaxBackups is the maximum number of old log files to retain.
LogMaxBackups int
// Optional, defaults to false.
// Compress determines if the rotated log files should be compressed using gzip.
LogCompress bool
Endpoint string
NoRetryStatusCodeList []int
HTTPClient *http.Client
UserAgent string
LogTags []*sls.LogTag
GeneratePackId bool
CredentialsProvider sls.CredentialsProvider
UseMetricStoreURL bool
DisableRuntimeMetrics bool // disable runtime metrics, runtime metrics prints to local log.
// Deprecated: use CredentialsProvider and UpdateFuncProviderAdapter instead.
//
// Example:
// provider := sls.NewUpdateFuncProviderAdapter(updateStsTokenFunc)
// config := &ProducerConfig{
// CredentialsProvider: provider,
// }
UpdateStsToken UpdateStsTokenFunc
StsTokenShutDown chan struct{}
AccessKeyID string // Deprecated: use CredentialsProvider instead
AccessKeySecret string // Deprecated: use CredentialsProvider instead
Region string
AuthVersion sls.AuthVersionType
CompressType int // only work for logstore now
Processor string // ingest processor
}
func GetDefaultProducerConfig() *ProducerConfig {
return &ProducerConfig{
TotalSizeLnBytes: 100 * 1024 * 1024,
MaxIoWorkerCount: 50,
MaxBlockSec: 60,
MaxBatchSize: 512 * 1024,
LingerMs: 2000,
Retries: 10,
MaxReservedAttempts: 11,
BaseRetryBackoffMs: 100,
MaxRetryBackoffMs: 50 * 1000,
AdjustShargHash: true,
Buckets: 64,
MaxBatchCount: 4096,
NoRetryStatusCodeList: []int{400, 404},
CompressType: sls.Compress_LZ4,
}
}