Documentation
¶
Index ¶
Constants ¶
View Source
const ( DefaultBatchSize = 5000 DefaultQueueSize = 1024 DefaultFlushInterval = util.Duration(time.Second) DefaultPrecision = "ms" DefaultUseGZip = true DefaultHttpRequestTimeout = util.Duration(20 * time.Second) DefaultMonitorInterval = util.Duration(10 * time.Second) DefaultHeartbeatInterval = util.Duration(time.Second) DefaultHeartbeatCount = 2 DefaultEnableFileCache = true DefaultCachePath = "./cache/" DefaultCacheFileMaxSize = 1073741824 DefaultCacheFileFlushInterval = util.Duration(10 * time.Second) )
View Source
const (
FileNameSeparator = '|'
)
View Source
const (
UserAgent = "s-proxy"
)
Variables ¶
This section is empty.
Functions ¶
Types ¶
type Client ¶
type Client struct {
Config Config
URL url.URL
HttpClient *http.Client
Transport *http.Transport
Logger *zap.Logger
DBWriterMap sync.Map // map[string]*DBWriter
FlushInterval time.Duration
Closing chan struct{}
Closed chan struct{}
// contains filtered or unexported fields
}
func (*Client) AddDatabase ¶
func (*Client) WithLogger ¶
type Config ¶
type Config struct {
NodeId int64
IP string
HttpPort int
UdpPort int
DBS []string
Status int32
BatchSize uint32 `yaml:"BatchSize" mapstructure:"BatchSize"`
QueueSize uint64 `yaml:"QueueSize" mapstructure:"QueueSize"`
FlushInterval util.Duration `yaml:"FlushInterval" mapstructure:"FlushInterval"`
Precision string `yaml:"Precision" mapstructure:"Precision"`
UseGZip bool `yaml:"UseGZip" mapstructure:"UseGZip"`
HttpRequestTimeout util.Duration `yaml:"HttpRequestTimeout" mapstructure:"HttpRequestTimeout"`
MonitorInterval util.Duration `yaml:"MonitorInterval" mapstructure:"MonitorInterval"`
HeartbeatInterval util.Duration `yaml:"HeartbeatInterval" mapstructure:"HeartbeatInterval"`
HeartbeatCount int `yaml:"HeartbeatCount" mapstructure:"HeartbeatCount"`
EnableFileCache bool `yaml:"EnableFileCache" mapstructure:"EnableFileCache"`
CachePath string `yaml:"CachePath" mapstructure:"CachePath"`
CacheFileMaxSize int64 `yaml:"CacheFileMaxSize" mapstructure:"CacheFileMaxSize"`
CacheFileFlushInterval util.Duration `yaml:"CacheFileFlushInterval" mapstructure:"CacheFileFlushInterval"`
}
type DBWStatistics ¶
type DBWriter ¶
type DBWriter struct {
IP string
Database string
Config DBWriterConfig
NodeStatus int32
PointBoxMu *sync.Mutex
PointBox *Box
PointBoxQueue chan *Box
CacheFile *os.File
CacheFileTicker *time.Ticker
CacheFileMu *sync.Mutex
CacheFileResendQueue chan *os.File
PointBoxToFileQueue chan *Box
PointBoxTicker *time.Ticker
Logger *zap.Logger
FlushInterval time.Duration
CacheFileFlushInterval time.Duration
HttpClient *http.Client
Closing chan struct{}
Closed chan struct{}
// contains filtered or unexported fields
}
func NewDBWriter ¶
func NewDBWriter(config DBWriterConfig) (*DBWriter, error)
func (*DBWriter) SetHttpClient ¶
func (*DBWriter) WithLogger ¶
type DBWriterConfig ¶
type DBWriterConfig struct {
NodeId int64
IP string
Database string
URL string
BatchSize uint32
QueueSize uint64
FlushInterval util.Duration
Precision string
UseGZip bool
MonitorInterval util.Duration
EnableFileCache bool
CachePath string
CacheFileMaxSize int64
CacheFileFlushInterval util.Duration
}
func NewDBWriterConfig ¶
func NewDBWriterConfig() DBWriterConfig
type Statistics ¶
Click to show internal directories.
Click to hide internal directories.