log_config_plugin.go (87 lines of code) (raw):
package sls
// const PluginInputType
const (
PluginInputTypeDockerStdout = "service_docker_stdout"
PPluginInputTypeCanal = "service_canal"
)
type PluginInputItem struct {
Type string `json:"type"`
Detail PluginInterface `json:"detail"`
}
func CreatePluginInputItem(t string, detail PluginInterface) *PluginInputItem {
return &PluginInputItem{
Type: t,
Detail: detail,
}
}
type LogConfigPluginInput struct {
Inputs []*PluginInputItem `json:"inputs"`
Processors []*PluginInputItem `json:"processors,omitempty"`
Aggregators []*PluginInputItem `json:"aggregators,omitempty"`
Flushers []*PluginInputItem `json:"flushers,omitempty"`
}
type PluginInterface interface {
}
type ConfigPluginCanal struct {
Host string
Port int
User string
Password string
Flavor string
ServerID int
IncludeTables []string
ExcludeTables []string
StartBinName string
StartBinLogPos int
HeartBeatPeriod int
ReadTimeout int
EnableDDL bool
EnableXID bool
EnableGTID bool
EnableInsert bool
EnableUpdate bool
EnableDelete bool
TextToString bool
StartFromBegining bool
Charset string
}
func CreateConfigPluginCanal() *ConfigPluginCanal {
return &ConfigPluginCanal{
Host: "127.0.0.1",
Port: 3306,
User: "root",
Flavor: "mysql",
ServerID: 1205,
HeartBeatPeriod: 60,
ReadTimeout: 90,
EnableGTID: true,
EnableInsert: true,
EnableUpdate: true,
EnableDelete: true,
Charset: "utf8",
}
}
type ConfigPluginDockerStdout struct {
IncludeLabel map[string]string
ExcludeLabel map[string]string
IncludeEnv map[string]string
ExcludeEnv map[string]string
FlushIntervalMs int
TimeoutMs int
BeginLineRegex string
BeginLineTimeoutMs int
BeginLineCheckLength int
MaxLogSize int
Stdout bool
Stderr bool
}
func CreateConfigPluginDockerStdout() *ConfigPluginDockerStdout {
return &ConfigPluginDockerStdout{
FlushIntervalMs: 3000,
TimeoutMs: 3000,
Stdout: true,
Stderr: true,
BeginLineTimeoutMs: 3000,
BeginLineCheckLength: 10 * 1024,
MaxLogSize: 512 * 1024,
}
}