Documentation
¶
Index ¶
- Constants
- Variables
- func ValidatePipelineConfig(cfg *PipelineConfigV2) error
- type Config
- type GtmConfig
- type MongoConfigs
- type MongoConnConfig
- type MongoPosition
- type MongoSource
- type MySQLConfig
- type PipelineConfig
- type PipelineConfigV2
- type SourceKafkaConfig
- type SourceProbeCfg
- type SourceTiDBConfig
Constants ¶
View Source
const GravityDBName = "_gravity"
Variables ¶
View Source
var DefaultBinlogSyncerTimeout = "10s"
Functions ¶
func ValidatePipelineConfig ¶
func ValidatePipelineConfig(cfg *PipelineConfigV2) error
Types ¶
type Config ¶
type Config struct {
*flag.FlagSet `json:"-"`
EtcdEndpoints string `toml:"etcd-endpoints" json:"etcd-endpoints"`
PipelineConfig *PipelineConfigV2 `toml:"pipeline" json:"pipeline"`
// Log related configuration.
Log logutil.LogConfig `toml:"log" json:"log"`
HttpAddr string `toml:"http-addr" json:"http-addr"`
PositionFile string `toml:"position-file" json:"position-file"`
ConfigFile string `toml:"-" json:"-"`
ClearPosition bool `toml:"-" json:"-"`
Version bool
}
Config is the configuration.
func LoadConfigFromFile ¶
func NewConfigFromString ¶
func (*Config) ConfigFromFile ¶
ConfigFromFile loads config from file.
type GtmConfig ¶
type GtmConfig struct {
UseBufferDuration bool `mapstructure:"use-buffer-duration" toml:"use-buffer-duration" json:"use-buffer-duration"`
BufferSize int `mapstructure:"buffer-size" toml:"buffer-size" json:"buffer-size"`
ChannelSize int `mapstructure:"channel-size" toml:"channel-size" json:"channel-size"`
BufferDurationMs int `mapstructure:"buffer-duration-ms" toml:"buffer-duration-ms" json:"buffer-duration-ms"`
}
type MongoConfigs ¶
type MongoConfigs struct {
MongoSources []MongoSource `toml:"mongo-sources" json:"mongo-sources"`
PositionSource *MongoConnConfig `toml:"position-conn" json:"position-conn"`
GtmConfig *GtmConfig `toml:"gtm-config" json:"gtm-config"`
}
type MongoConnConfig ¶
type MongoConnConfig struct {
Host string `mapstructure:"host" toml:"host" json:"host"`
Port int `mapstructure:"port" toml:"port" json:"port"`
Username string `mapstructure:"username" toml:"username" json:"username"`
Password string `mapstructure:"password" toml:"password" json:"password"`
Database string `mapstructure:"database" toml:"database" json:"database"`
Direct bool `mapstructure:"-" toml:"-" json:"-"`
}
type MongoPosition ¶
type MongoPosition bson.MongoTimestamp
type MongoSource ¶
type MongoSource struct {
MongoConnConfig *MongoConnConfig `mapstructure:"source" toml:"source" json:"source"`
StartPosition *MongoPosition `mapstructure:"start-position" toml:"start-position" json:"start-position"`
}
type MySQLConfig ¶
type MySQLConfig struct {
IgnoreBiDirectionalData bool `mapstructure:"ignore-bidirectional-data" toml:"ignore-bidirectional-data" json:"ignore-bidirectional-data"`
Source *utils.DBConfig `mapstructure:"source" toml:"source" json:"source"`
SourceSlave *utils.DBConfig `mapstructure:"source-slave" toml:"source-slave" json:"source-slave"`
StartPosition *utils.MySQLBinlogPosition `mapstructure:"start-position" toml:"start-position" json:"start-position"`
}
type PipelineConfig ¶
type PipelineConfig struct {
PipelineName string `toml:"name" json:"name"`
// Deprecated!
// DetectTxn txn is used in: bi-directional transfer, dynamic route
DetectTxn bool `toml:"detect-txn" json:"detect-txn"`
// UniqueSourceName name of the server
UniqueSourceName string `toml:"unique-source-name" json:"unique-source-name"`
Input string `toml:"input" json:"input"`
Output string `toml:"output" json:"output"`
OutputFormat string `toml:"output-format" json:"output-format"`
MongoConfig *MongoConfigs `toml:"mongo" json:"mongo"`
MySQLConfig *MySQLConfig `toml:"mysql" json:"mysql"`
SourceTiDBConfig *SourceTiDBConfig `toml:"source-tidb" json:"source-tidb"`
SourceProbeCfg *SourceProbeCfg `toml:"source-probe-config" json:"source-probe-config"`
KafkaGlobalConfig *config.KafkaGlobalConfig `toml:"kafka-global" json:"kafka-global"`
//
// RouteMode, DynamicKafkaRouteConfig, StaticKafkaRouteConfig, and DBRoutes
// are route related configuration
RouteMode string `toml:"route-mode" json:"route-mode"`
TableConfig []*config.TableConfig `toml:"table-config" json:"table-config"`
TargetMySQL *utils.DBConfig `toml:"target-mysql" json:"target-mysql"`
TargetMySQLWorkerCfg *config.TargetMySQLWorkerConfig `toml:"target-mysql-worker" json:"target-mysql-worker"`
//
// internal configurations that is not exposed to users
//
DisableBinlogChecker bool `toml:"-" json:"-"`
DebugBinlog bool `toml:"-" json:"-"`
BinlogSyncerTimeout string `toml:"-" json:"-"`
}
type PipelineConfigV2 ¶
type PipelineConfigV2 struct {
PipelineName string `mapstructure:"name" toml:"name" json:"name"`
InputPlugins map[string]interface{} `toml:"input" json:"input" mapstructure:"input"`
FilterPlugins []interface{} `mapstructure:"filters" toml:"filters" json:"filters,omitempty"`
OutputPlugins map[string]interface{} `mapstructure:"output" toml:"output" json:"output"`
SchedulerPlugins map[string]interface{} `mapstructure:"scheduler" toml:"scheduler" json:"scheduler,omitempty"`
}
func DecodeTomlString ¶
func DecodeTomlString(s string) (*PipelineConfigV2, error)
type SourceKafkaConfig ¶
type SourceKafkaConfig struct {
BrokerConfig config.KafkaGlobalConfig `mapstructure:"brokers" toml:"brokers" json:"brokers"`
GroupID string `mapstructure:"group-id" toml:"group-id" json:"group-id"`
Topics []string `mapstructure:"topic" toml:"topics" json:"topics"`
ConsumeFrom string `mapstructure:"consume-from" toml:"consume-from" json:"consume-from"`
Common config.KafkaCommonConfig `mapstructure:"common" toml:"common" json:"common"`
Consumer *config.KafkaConsumerConfig `mapstructure:"consumer" toml:"consumer" json:"consumer"`
}
type SourceProbeCfg ¶
type SourceTiDBConfig ¶
type SourceTiDBConfig struct {
SourceDB *utils.DBConfig `mapstructure:"source-db" toml:"source-db" json:"source-db"`
SourceKafka *SourceKafkaConfig `mapstructure:"source-kafka" toml:"source-kafka" json:"source-kafka"`
OffsetStoreConfig *SourceProbeCfg `mapstructure:"offset-store" toml:"offset-store" json:"offset-store"`
}
Click to show internal directories.
Click to hide internal directories.