Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Command ¶
type Command interface {
Run() error
}
Command represents something that can be run by the load runner
type CommandFactory ¶
type CommandFactory interface { // Name returns the name of the command Name() string // CreateCommand creates a Command instance CreateCommand(loadRunnerNodeID int, commandConfig string) Command }
CommandFactory creates Command instances given some config Each command type has its own CommandFactory instance
type ExecStatementCommand ¶
type ExecStatementCommand struct {
// contains filtered or unexported fields
}
ExecStatementCommand is a Command that executes Prana statements (e.g. SELECT statements, or DDL statements like CREATE SOURCE) against Prana
func (*ExecStatementCommand) Run ¶
func (p *ExecStatementCommand) Run() error
type ExecStatementCommandFactory ¶
type ExecStatementCommandFactory struct { }
ExecStatementCommandFactory is a CommandFactory instance that creates ExecuteStatementCommand instances
func (*ExecStatementCommandFactory) CreateCommand ¶
func (p *ExecStatementCommandFactory) CreateCommand(loadRunnerNodeID int, commandString string) Command
func (*ExecStatementCommandFactory) Name ¶
func (p *ExecStatementCommandFactory) Name() string
type ExecuteStatementCommandCfg ¶
type ExecuteStatementCommandCfg struct { // LoadRunnerNodeID is the ID of the load runner node from where to execute this statement LoadRunnerNodeID int `json:"load_runner_node_id"` // NumIters is the number of times to execute the statement NumIters int `json:"num_iters"` // Concurrency determines the number of goroutines that will be created to execute the statements. Each // goroutine executes the statement numIters times Concurrency int `json:"concurrency"` // The gRPC API host_name of the Prana server to execute the statement on PranaHostname string `json:"prana_host_name"` // SchemaName is the schema name SchemaName string `json:"schema_name"` // Statement is the statement to execute Statement string `json:"statement"` }
type LoadRunner ¶
type LoadRunner struct {
// contains filtered or unexported fields
}
LoadRunner is a simple server which hosts a gRPC API and allows commands to be executed. Commands are described by JSON and can be things like sending messages to Kafka or executing Prana DML or DDL statements against a Prana server. Load runner is deployed as a cluster and there's a simple command line client that's used to send commands to it.
func NewLoadRunner ¶
func NewLoadRunner(conf Config) *LoadRunner
func (*LoadRunner) RunCommand ¶
func (p *LoadRunner) RunCommand(ctx context.Context, request *loadrunner.RunCommandRequest) (*emptypb.Empty, error)
func (*LoadRunner) Start ¶
func (p *LoadRunner) Start() error
func (*LoadRunner) Stop ¶
func (p *LoadRunner) Stop() error
type PublishCommand ¶
type PublishCommand struct {
// contains filtered or unexported fields
}
PublishCommand is a command which publishes messages Kafka using a message generator
func (*PublishCommand) Run ¶
func (p *PublishCommand) Run() error
type PublishCommandCfg ¶
type PublishCommandCfg struct { // GeneratorName is the name of the generator which actually creates the Kafka messages GeneratorName string `json:"generator_name"` // TopicName is the name of the topic to send the messages to TopicName string `json:"topic_name"` // Partitions is the number of partitions in the topic Partitions int `json:"partitions"` // Delay is the delay between sending each message Delay time.Duration `json:"delay"` // NumMessages is the total number of messages to send NumMessages int64 `json:"num_messages"` // IndexStart determines the start ID of the first message sent IndexStart int64 `json:"index_start"` // KafkaProperties - properties when making the connection to Kafka KafkaProperties map[string]string `json:"kafka_properties"` }
type PublishCommandFactory ¶
type PublishCommandFactory struct { }
func (*PublishCommandFactory) CreateCommand ¶
func (p *PublishCommandFactory) CreateCommand(loadRunnerNodeID int, commandConfig string) Command
func (*PublishCommandFactory) Name ¶
func (p *PublishCommandFactory) Name() string