package cht
import "github.com/ClickHouse/ch-go/cht"
Package cht implements ClickHouse testing utilities, primarily end to end.
Package cht implements running ClickHouse for tests.
Index ¶
- Constants
- func Bin() (string, error)
- func BinOrSkip(t testing.TB) string
- func Ports(t testing.TB, n int) []int
- func Skip(t testing.TB)
- type Cluster
- type Clusters
- type Config
- type CoordinationConfig
- type DistributedDDL
- type KeeperConfig
- type LogEntry
- type Logger
- type Map
- type OpenTelemetry
- type Option
- func With(opts ...Option) Option
- func WithClusters(c Clusters) Option
- func WithDistributedDDL(ddl DistributedDDL) Option
- func WithInterServerHTTP(port int) Option
- func WithKeeper(cfg KeeperConfig) Option
- func WithLog(lg *zap.Logger) Option
- func WithMacros(m Map) Option
- func WithTCP(port int) Option
- func WithZooKeeper(nodes []ZooKeeperNode) Option
- type RaftConfig
- type RaftServer
- type Replica
- type Server
- type Shard
- type UserDir
- type UsersXML
- type ZooKeeperNode
Constants ¶
const EnvBin = "CH_BIN"
EnvBin is environmental variable that sets paths to current ClickHouse binary.
Functions ¶
func Bin ¶
Bin returns path to current ClickHouse binary.
func BinOrSkip ¶
BinOrSkip returns binary path or skips test.
func Ports ¶
Ports allocates n free ports.
func Skip ¶
Skip test if e2e is not available.
Types ¶
type Cluster ¶
type Clusters ¶
func (Clusters) MarshalXML ¶
type Config ¶
type Config struct { XMLName xml.Name `xml:"clickhouse"` Logger Logger `xml:"logger"` HTTP int `xml:"http_port"` TCP int `xml:"tcp_port"` Host string `xml:"listen_host"` InterServerHTTP *int `xml:"interserver_http_port,omitempty"` Path string `xml:"path"` TempPath string `xml:"tmp_path"` UserFilesPath string `xml:"user_files_path"` UserDirectories UserDir `xml:"user_directories"` MarkCacheSize int64 `xml:"mark_cache_size"` MMAPCacheSize int64 `xml:"mmap_cache_size"` OpenTelemetrySpanLog *OpenTelemetry `xml:"opentelemetry_span_log,omitempty"` // ZooKeeper configures ZooKeeper nodes. ZooKeeper []ZooKeeperNode `xml:"zookeeper>node,omitempty"` Macros Map `xml:"macros,omitempty"` DistributedDDL *DistributedDDL `xml:"distributed_ddl,omitempty"` // Keeper is config for clickhouse-keeper server. Keeper *KeeperConfig `xml:"keeper_server,omitempty"` RemoteServers Clusters `xml:"remote_servers,omitempty"` }
Config for ClickHouse.
type CoordinationConfig ¶
type CoordinationConfig struct { OperationTimeoutMs int `xml:"operation_timeout_ms,omitempty"` SessionTimeoutMs int `xml:"session_timeout_ms,omitempty"` RaftLogsLevel string `xml:"raft_logs_level,omitempty"` HeartBeatIntervalMs int `xml:"heart_beat_interval_ms,omitempty"` DeadSessionCheckPeriodMs int `xml:"dead_session_check_period_ms,omitempty"` ElectionTimeoutLowerBoundMs int `xml:"election_timeout_lower_bound_ms,omitempty"` ElectionTimeoutUpperBoundMs int `xml:"election_timeout_upper_bound_ms,omitempty"` }
type DistributedDDL ¶
type DistributedDDL struct { Path string `xml:"path,omitempty"` Profile string `xml:"profile,omitempty"` PoolSize int `xml:"pool_size"` TaskMaxLifetime int `xml:"task_max_lifetime,omitempty"` CleanupDelayPeriod int `xml:"cleanup_delay_period,omitempty"` MaxTasksInQueue int `xml:"max_tasks_in_queue,omitempty"` }
type KeeperConfig ¶
type KeeperConfig struct { XMLName xml.Name `xml:"keeper_server"` TCPPort int `xml:"tcp_port,omitempty"` ServerID int `xml:"server_id,omitempty"` LogStoragePath string `xml:"log_storage_path,omitempty"` SnapshotStoragePath string `xml:"snapshot_storage_path,omitempty"` Coordination CoordinationConfig `xml:"coordination_settings"` Raft RaftConfig `xml:"raft_configuration"` }
KeeperConfig is config for clickhouse-keeper.
https://clickhouse.com/docs/en/operations/clickhouse-keeper/
type LogEntry ¶
type LogEntry struct { QueryID string // f9464441-7023-4df5-89e5-8d16ea6aa2dd Severity string // "Debug", "Information", "Trace" Name string // "MemoryTracker", "executeQuery" Message string // "Peak memory usage (for query): 0.00 B." ThreadID uint64 // 591781 }
func (LogEntry) Level ¶
type Logger ¶
Logger settings.
type Map ¶
func (Map) MarshalXML ¶
type OpenTelemetry ¶
type OpenTelemetry struct { Engine string `xml:"engine,omitempty"` Database string `xml:"database,omitempty"` Table string `xml:"table,omitempty"` FlushIntervalMs int `xml:"flush_interval_milliseconds,omitempty"` }
type Option ¶
type Option func(o *options)
func With ¶
With composes opts into single Option.
Useful for Many calls.
func WithClusters ¶
func WithDistributedDDL ¶
func WithDistributedDDL(ddl DistributedDDL) Option
func WithInterServerHTTP ¶
func WithKeeper ¶
func WithKeeper(cfg KeeperConfig) Option
func WithLog ¶
func WithMacros ¶
func WithTCP ¶
func WithZooKeeper ¶
func WithZooKeeper(nodes []ZooKeeperNode) Option
type RaftConfig ¶
type RaftConfig struct { Servers []RaftServer `xml:"servers"` }
type RaftServer ¶
type Replica ¶
type Replica struct { Priority int `xml:"priority,omitempty"` Host string `xml:"host"` Port int `xml:"port"` }
type Server ¶
Server represents testing ClickHouse server.
func Many ¶
Many concurrent calls to New.
func New ¶
New creates new ClickHouse server and returns it. Use Many to start multiple servers at once.
Skips tests if CH_E2E variable is set to 0. Fails if CH_E2E is 1, but no binary is available. Skips if CH_E2E is unset and no binary.
Override binary with CH_BIN. Can be clickhouse-server or clickhouse.
type Shard ¶
type Shard struct { XMLName xml.Name `xml:"shard"` Weight int `xml:"weight,omitempty"` InternalReplication bool `xml:"internal_replication,omitempty"` Replicas []Replica `xml:"replica,omitempty"` }
type UserDir ¶
type UserDir struct { UsersXML UsersXML `xml:"users_xml"` }
UserDir for ClickHouse.
type UsersXML ¶
type UsersXML struct { Path string `xml:"path"` }
UsersXML config for ClickHouse.
type ZooKeeperNode ¶
type ZooKeeperNode struct { Index int `xml:"index,omitempty,attr"` Host string `xml:"host,omitempty"` Port int `xml:"port,omitempty"` }
Source Files ¶
cht.go config.go doc.go log.go
- Version
- v0.44.0
- Published
- Jun 19, 2022
- Platform
- linux/amd64
- Imports
- 22 packages
- Last checked
- 18 minutes ago –
Tools for package owners.