client

package
v0.0.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 24, 2020 License: MIT Imports: 17 Imported by: 0

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

func NewPool

func NewPool() *sync.Pool

Types

type Box

type Box struct {
	// contains filtered or unexported fields
}

func GetBox

func GetBox() *Box

func (*Box) Append

func (b *Box) Append(buf []byte)

func (*Box) Bytes

func (b *Box) Bytes() []byte

func (*Box) Free

func (b *Box) Free()

func (*Box) Len

func (b *Box) Len() uint32

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 NewClient

func NewClient(config Config) (*Client, error)

func (*Client) AddDatabase

func (c *Client) AddDatabase(database string) error

func (*Client) Close

func (c *Client) Close() error

func (*Client) Open

func (c *Client) Open() error

func (*Client) Ping

func (c *Client) Ping() (time.Duration, string, error)

func (*Client) Send

func (c *Client) Send(line []byte, database string) error

func (*Client) WithLogger

func (c *Client) WithLogger(logger *zap.Logger)

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"`
}

func NewConfig

func NewConfig() Config

type DBWStatistics

type DBWStatistics struct {
	SendBoxSuccess        uint64
	SendBoxFail           uint64
	WriteBoxToFileSuccess uint64
	WriteBoxToFileFail    uint64
}

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) Close

func (dbw *DBWriter) Close() error

func (*DBWriter) Open

func (dbw *DBWriter) Open() error

func (*DBWriter) Send

func (dbw *DBWriter) Send(line []byte) error

func (*DBWriter) SetHttpClient

func (dbw *DBWriter) SetHttpClient(c *http.Client)

func (*DBWriter) WithLogger

func (dbw *DBWriter) WithLogger(logger *zap.Logger)

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

type Statistics struct {
	SendLineSuccess uint64
	SendLineFail    uint64
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL