Documentation
¶
Index ¶
Constants ¶
const ( AccessKeyIDSecretKey = "access-key-id" SecretAccessKeySecretKey = "secret-access-key" )
Variables ¶
This section is empty.
Functions ¶
func FromCluster ¶
func FromCluster(cluster *v1alpha1.GreptimeDBCluster, componentKind v1alpha1.ComponentKind) ([]byte, error)
FromCluster creates config data from the cluster CRD.
Types ¶
type Config ¶
type Config interface {
// Kind returns the component kind of the config.
Kind() v1alpha1.ComponentKind
// ConfigureByCluster configures the config by the given cluster.
ConfigureByCluster(cluster *v1alpha1.GreptimeDBCluster) error
}
Config is the interface for the config of greptimedb.
func FromFile ¶
func FromFile(filename string, kind v1alpha1.ComponentKind) (Config, error)
FromFile creates config from the file.
func FromRawData ¶
func FromRawData(raw []byte, kind v1alpha1.ComponentKind) (Config, error)
FromRawData creates config from the raw input.
func NewFromComponentKind ¶
func NewFromComponentKind(kind v1alpha1.ComponentKind) (Config, error)
NewFromComponentKind creates config from the component kind.
type DatanodeConfig ¶
type DatanodeConfig struct {
// Node running mode.
Mode string `toml:"mode,omitempty"`
// Whether to use in-memory catalog.
EnableMemoryCatalog *bool `toml:"enable_memory_catalog,omitempty"`
// The datanode identifier, should be unique.
NodeID *uint64 `toml:"node_id,omitempty"`
// gRPC server address.
RPCAddr string `toml:"rpc_addr,omitempty"`
// Hostname of this node.
RPCHostName string `toml:"rpc_hostname,omitempty"`
// The number of gRPC server worker threads.
RPCRuntimeSize int32 `toml:"rpc_runtime_size,omitempty"`
MetaClientOptions struct {
// Metasrv address list.
MetaSrvAddrs []string `toml:"metasrv_addrs,omitempty"`
// Operation timeout in milliseconds.
TimeoutMillis int32 `toml:"timeout_millis,omitempty"`
// Connect server timeout in milliseconds.
ConnectTimeoutMillis int32 `toml:"connect_timeout_millis,omitempty"`
// `TCP_NODELAY` option for accepted connections.
TCPNoDelay *bool `toml:"tcp_nodelay,omitempty"`
} `toml:"meta_client_options,omitempty"`
Wal struct {
FileSize string `toml:"file_size,omitempty"`
PurgeThreshold string `toml:"purge_threshold,omitempty"`
PurgeInterval string `toml:"purge_interval,omitempty"`
ReadBatchSize int32 `toml:"read_batch_size,omitempty"`
SyncWrite *bool `toml:"sync_write,omitempty"`
} `toml:"wal,omitempty"`
Storage struct {
// Storage options.
Type string `toml:"type,omitempty"`
DataHome string `toml:"data_home,omitempty"`
Bucket string `toml:"bucket,omitempty"`
Root string `toml:"root,omitempty"`
AccessKeyID string `toml:"access_key_id,omitempty"`
SecretAccessKey string `toml:"secret_access_key,omitempty"`
Endpoint string `toml:"endpoint,omitempty"`
Region string `toml:"region,omitempty"`
CachePath string `toml:"cache_path,omitempty"`
CacheCapacity string `toml:"cache_capacity,omitempty"`
// Storage manifest options.
Manifest struct {
// Region checkpoint actions margin.
CheckpointMargin int32 `toml:"checkpoint_margin,omitempty"`
// Region manifest logs and checkpoints gc execution duration.
GCDuration string `toml:"gc_duration,omitempty"`
// Whether to try creating a manifest checkpoint on region opening.
CheckpointOnStartup *bool `toml:"checkpoint_on_startup,omitempty"`
} `toml:"manifest,omitempty"`
// Storage flush options.
Flush struct {
// Max inflight flush tasks.
MaxFlushTasks int32 `toml:"max_flush_tasks,omitempty"`
// Default write buffer size for a region.
RegionWriteBufferSize string `toml:"region_write_buffer_size,omitempty"`
// Interval to check whether a region needs flush.
PickerScheduleInterval string `toml:"picker_schedule_interval,omitempty"`
// Interval to auto flush a region if it has not flushed yet.
AutoFlushInterval string `toml:"auto_flush_interval,omitempty"`
// Global write buffer size for all regions.
GlobalWriteBufferSize string `toml:"global_write_buffer_size,omitempty"`
} `toml:"flush,omitempty"`
} `toml:"storage,omitempty"`
Procedure struct {
MaxRetryTimes int32 `toml:"max_retry_times,omitempty"`
RetryDelay string `toml:"retry_delay,omitempty"`
} `toml:"procedure,omitempty"`
Logging struct {
Dir string `toml:"dir,omitempty"`
Level string `toml:"level,omitempty"`
} `toml:"logging,omitempty"`
}
DatanodeConfig is the configuration for the datanode.
func (*DatanodeConfig) ConfigureByCluster ¶
func (c *DatanodeConfig) ConfigureByCluster(cluster *v1alpha1.GreptimeDBCluster) error
ConfigureByCluster configures the datanode config by the given cluster.
func (*DatanodeConfig) Kind ¶
func (c *DatanodeConfig) Kind() v1alpha1.ComponentKind
Kind returns the component kind of the datanode.
type FrontendConfig ¶
type FrontendConfig struct {
// Node running mode.
Mode string `toml:"mode,omitempty"`
HTTPOptions struct {
Addr string `toml:"addr,omitempty"`
Timeout string `toml:"timeout,omitempty"`
} `toml:"http_options,omitempty"`
GRPCOptions struct {
Addr string `toml:"addr,omitempty"`
RuntimeSize int32 `toml:"runtime_size,omitempty"`
} `toml:"grpc_options,omitempty"`
// MySQL server options.
MySQLOptions struct {
Addr string `toml:"addr,omitempty"`
RuntimeSize int32 `toml:"runtime_size,omitempty"`
// MySQL server TLS options.
TLS struct {
Mode string `toml:"mode,omitempty"`
CertPath string `toml:"cert_path,omitempty"`
KeyPath string `toml:"key_path,omitempty"`
} `toml:"tls,omitempty"`
} `toml:"mysql_options,omitempty"`
// Postgres server options.
PostgresOptions struct {
Addr string `toml:"addr,omitempty"`
RuntimeSize int32 `toml:"runtime_size,omitempty"`
// MySQL server TLS options.
TLS struct {
Mode string `toml:"mode,omitempty"`
CertPath string `toml:"cert_path,omitempty"`
KeyPath string `toml:"key_path,omitempty"`
} `toml:"tls,omitempty"`
} `toml:"postgres_options,omitempty"`
OpenTSDBOptions struct {
Addr string `toml:"addr,omitempty"`
RuntimeSize int32 `toml:"runtime_size,omitempty"`
} `toml:"opentsdb_options,omitempty"`
InfluxDBOptions struct {
Enable *bool `toml:"enable,omitempty"`
} `toml:"influxdb_options,omitempty"`
PromStoreOptions struct {
Enable *bool `toml:"enable,omitempty"`
} `toml:"prom_store_options,omitempty"`
PrometheusOptions struct {
Addr string `toml:"addr,omitempty"`
} `toml:"prometheus_options,omitempty"`
MetaClientOptions struct {
// Metasrv address list.
MetaSrvAddrs []string `toml:"metasrv_addrs,omitempty"`
// Operation timeout in milliseconds.
TimeoutMillis int32 `toml:"timeout_millis,omitempty"`
// Connect server timeout in milliseconds.
ConnectTimeoutMillis int32 `toml:"connect_timeout_millis,omitempty"`
// `TCP_NODELAY` option for accepted connections.
TCPNoDelay *bool `toml:"tcp_nodelay,omitempty"`
} `toml:"meta_client_options,omitempty"`
Logging struct {
Dir string `toml:"dir,omitempty"`
Level string `toml:"level,omitempty"`
} `toml:"logging,omitempty"`
}
FrontendConfig is the configuration for the frontend.
func (*FrontendConfig) ConfigureByCluster ¶
func (c *FrontendConfig) ConfigureByCluster(cluster *v1alpha1.GreptimeDBCluster) error
ConfigureByCluster configures the frontend configuration by the given cluster.
func (*FrontendConfig) Kind ¶
func (c *FrontendConfig) Kind() v1alpha1.ComponentKind
Kind returns the component kind of the frontend.
type MetasrvConfig ¶
type MetasrvConfig struct {
// The bind address of metasrv.
BindAddr string `toml:"bind_addr,omitempty"`
// The communication server address for frontend and datanode to connect to metasrv.
ServerAddr string `toml:"server_addr,omitempty"`
// Etcd server address.
StoreAddr string `toml:"store_addr,omitempty"`
// Datanode lease in seconds.
DatanodeLeaseSec int32 `toml:"datanode_lease_sec,omitempty"`
// Datanode selector type, can be "LeaseBased" or "LoadBased".
Selector string `toml:"selector,omitempty"`
// Store data in memory.
UseMemoryStore *bool `toml:"use_memory_store,omitempty"`
Logging struct {
Dir string `toml:"dir,omitempty"`
Level string `toml:"level,omitempty"`
} `toml:"logging,omitempty"`
}
MetasrvConfig is the configuration for the metasrv.
func (*MetasrvConfig) ConfigureByCluster ¶
func (c *MetasrvConfig) ConfigureByCluster(cluster *v1alpha1.GreptimeDBCluster) error
ConfigureByCluster configures the metasrv config by the given cluster.
func (*MetasrvConfig) Kind ¶
func (c *MetasrvConfig) Kind() v1alpha1.ComponentKind
Kind returns the component kind of the metasrv.