Documentation
¶
Index ¶
- func RegisterConfigType(configType string, constructor ConfigConstructor)
- type BaseConfig
- type Config
- type ConfigConstructor
- type ConfigMap
- type ConstantArrivalRateConfig
- type ConstantLoopingVUsConfig
- type PerVUIteationsConfig
- type SharedIteationsConfig
- type Stage
- type VariableArrivalRateConfig
- type VariableLoopingVUsConfig
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func RegisterConfigType ¶
func RegisterConfigType(configType string, constructor ConfigConstructor)
RegisterConfigType adds the supplied ConfigConstructor as the constructor for its type in the configConstructors map, in a thread-safe manner
Types ¶
type BaseConfig ¶
type BaseConfig struct {
Name string `json:"-"` // set via the JS object key
Type string `json:"type"`
StartTime types.NullDuration `json:"startTime"`
Interruptible null.Bool `json:"interruptible"`
IterationTimeout types.NullDuration `json:"iterationTimeout"`
Env map[string]string `json:"env"`
Exec null.String `json:"exec"` // function name, externally validated
Percentage float64 `json:"-"` // 100, unless Split() was called
}
BaseConfig contains the common config fields for all schedulers
func NewBaseConfig ¶
func NewBaseConfig(name, configType string, interruptible bool) BaseConfig
NewBaseConfig returns a default base config with the default values
func (BaseConfig) CopyWithPercentage ¶
func (bc BaseConfig) CopyWithPercentage(percentage float64) *BaseConfig
CopyWithPercentage is a helper function that just sets the percentage to the specified amount.
func (BaseConfig) GetBaseConfig ¶
func (bc BaseConfig) GetBaseConfig() BaseConfig
GetBaseConfig just returns itself
func (BaseConfig) Validate ¶
func (bc BaseConfig) Validate() (errors []error)
Validate checks some basic things like present name, type, and a positive start time
type Config ¶
type Config interface {
GetBaseConfig() BaseConfig
Validate() []error
GetMaxVUs() int64
GetMaxDuration() time.Duration // includes max timeouts, to allow us to share VUs between schedulers in the future
}
Config is an interface that should be implemented by all scheduler config types
func GetParsedConfig ¶
GetParsedConfig returns a struct instance corresponding to the supplied config type. It will be fully initialized - with both the default values of the type, as well as with whatever the user had specified in the JSON
type ConfigConstructor ¶
ConfigConstructor is a simple function that returns a concrete Config instance with the specified name and all default values correctly initialized
type ConfigMap ¶
ConfigMap can contain mixed scheduler config types
func (*ConfigMap) UnmarshalJSON ¶
UnmarshalJSON implements the json.Unmarshaler interface in a two-step manner, creating the correct type of configs based on the `type` property.
type ConstantArrivalRateConfig ¶
type ConstantArrivalRateConfig struct {
BaseConfig
Rate null.Int `json:"rate"`
TimeUnit types.NullDuration `json:"timeUnit"`
Duration types.NullDuration `json:"duration"`
// Initialize `PreAllocatedVUs` number of VUs, and if more than that are needed,
// they will be dynamically allocated, until `MaxVUs` is reached, which is an
// absolutely hard limit on the number of VUs the scheduler will use
PreAllocatedVUs null.Int `json:"preAllocatedVUs"`
MaxVUs null.Int `json:"maxVUs"`
}
ConstantArrivalRateConfig stores config for the constant arrival-rate scheduler
func NewConstantArrivalRateConfig ¶
func NewConstantArrivalRateConfig(name string) ConstantArrivalRateConfig
NewConstantArrivalRateConfig returns a ConstantArrivalRateConfig with default values
func (ConstantArrivalRateConfig) GetMaxDuration ¶
func (carc ConstantArrivalRateConfig) GetMaxDuration() time.Duration
GetMaxDuration returns the maximum duration time for this scheduler, including the specified iterationTimeout, if the iterations are uninterruptible
func (ConstantArrivalRateConfig) GetMaxVUs ¶
func (carc ConstantArrivalRateConfig) GetMaxVUs() int64
GetMaxVUs returns the absolute maximum number of possible concurrently running VUs
func (ConstantArrivalRateConfig) Validate ¶
func (carc ConstantArrivalRateConfig) Validate() []error
Validate makes sure all options are configured and valid
type ConstantLoopingVUsConfig ¶
type ConstantLoopingVUsConfig struct {
BaseConfig
VUs null.Int `json:"vus"`
Duration types.NullDuration `json:"duration"`
}
ConstantLoopingVUsConfig stores VUs and duration
func NewConstantLoopingVUsConfig ¶
func NewConstantLoopingVUsConfig(name string) ConstantLoopingVUsConfig
NewConstantLoopingVUsConfig returns a ConstantLoopingVUsConfig with default values
func (ConstantLoopingVUsConfig) GetMaxDuration ¶
func (lcv ConstantLoopingVUsConfig) GetMaxDuration() time.Duration
GetMaxDuration returns the maximum duration time for this scheduler, including the specified iterationTimeout, if the iterations are uninterruptible
func (ConstantLoopingVUsConfig) GetMaxVUs ¶
func (lcv ConstantLoopingVUsConfig) GetMaxVUs() int64
GetMaxVUs returns the absolute maximum number of possible concurrently running VUs
func (ConstantLoopingVUsConfig) Split ¶
func (lcv ConstantLoopingVUsConfig) Split(percentages []float64) ([]Config, error)
Split divides the VUS as best it can, but keeps the same duration
func (ConstantLoopingVUsConfig) Validate ¶
func (lcv ConstantLoopingVUsConfig) Validate() []error
Validate makes sure all options are configured and valid
type PerVUIteationsConfig ¶
type PerVUIteationsConfig struct {
BaseConfig
VUs null.Int `json:"vus"`
Iterations null.Int `json:"iterations"`
MaxDuration types.NullDuration `json:"maxDuration"`
}
PerVUIteationsConfig stores the number of VUs iterations, as well as maxDuration settings
func NewPerVUIterationsConfig ¶
func NewPerVUIterationsConfig(name string) PerVUIteationsConfig
NewPerVUIterationsConfig returns a PerVUIteationsConfig with default values
func (PerVUIteationsConfig) GetMaxDuration ¶
func (pvic PerVUIteationsConfig) GetMaxDuration() time.Duration
GetMaxDuration returns the maximum duration time for this scheduler, including the specified iterationTimeout, if the iterations are uninterruptible
func (PerVUIteationsConfig) GetMaxVUs ¶
func (pvic PerVUIteationsConfig) GetMaxVUs() int64
GetMaxVUs returns the absolute maximum number of possible concurrently running VUs
func (PerVUIteationsConfig) Validate ¶
func (pvic PerVUIteationsConfig) Validate() []error
Validate makes sure all options are configured and valid
type SharedIteationsConfig ¶
type SharedIteationsConfig struct {
}
SharedIteationsConfig stores the number of VUs iterations, as well as maxDuration settings
func NewSharedIterationsConfig ¶
func NewSharedIterationsConfig(name string) SharedIteationsConfig
NewSharedIterationsConfig returns a SharedIteationsConfig with default values
func (SharedIteationsConfig) GetMaxDuration ¶
func (sic SharedIteationsConfig) GetMaxDuration() time.Duration
GetMaxDuration returns the maximum duration time for this scheduler, including the specified iterationTimeout, if the iterations are uninterruptible
func (SharedIteationsConfig) GetMaxVUs ¶
func (sic SharedIteationsConfig) GetMaxVUs() int64
GetMaxVUs returns the absolute maximum number of possible concurrently running VUs
func (SharedIteationsConfig) Validate ¶
func (sic SharedIteationsConfig) Validate() []error
Validate makes sure all options are configured and valid
type Stage ¶
type Stage struct {
Duration types.NullDuration `json:"duration"`
Target null.Int `json:"target"` // TODO: maybe rename this to endVUs? something else?
}
Stage contains
type VariableArrivalRateConfig ¶
type VariableArrivalRateConfig struct {
BaseConfig
StartRate null.Int `json:"startRate"`
TimeUnit types.NullDuration `json:"timeUnit"`
Stages []Stage `json:"stages"`
// Initialize `PreAllocatedVUs` number of VUs, and if more than that are needed,
// they will be dynamically allocated, until `MaxVUs` is reached, which is an
// absolutely hard limit on the number of VUs the scheduler will use
PreAllocatedVUs null.Int `json:"preAllocatedVUs"`
MaxVUs null.Int `json:"maxVUs"`
}
VariableArrivalRateConfig stores config for the variable arrival-rate scheduler
func NewVariableArrivalRateConfig ¶
func NewVariableArrivalRateConfig(name string) VariableArrivalRateConfig
NewVariableArrivalRateConfig returns a VariableArrivalRateConfig with default values
func (VariableArrivalRateConfig) GetMaxDuration ¶
func (varc VariableArrivalRateConfig) GetMaxDuration() time.Duration
GetMaxDuration returns the maximum duration time for this scheduler, including the specified iterationTimeout, if the iterations are uninterruptible
func (VariableArrivalRateConfig) GetMaxVUs ¶
func (varc VariableArrivalRateConfig) GetMaxVUs() int64
GetMaxVUs returns the absolute maximum number of possible concurrently running VUs
func (VariableArrivalRateConfig) Validate ¶
func (varc VariableArrivalRateConfig) Validate() []error
Validate makes sure all options are configured and valid
type VariableLoopingVUsConfig ¶
type VariableLoopingVUsConfig struct {
BaseConfig
StartVUs null.Int `json:"startVUs"`
Stages []Stage `json:"stages"`
}
VariableLoopingVUsConfig stores the configuration for the stages scheduler
func NewVariableLoopingVUsConfig ¶
func NewVariableLoopingVUsConfig(name string) VariableLoopingVUsConfig
NewVariableLoopingVUsConfig returns a VariableLoopingVUsConfig with its default values
func (VariableLoopingVUsConfig) GetMaxDuration ¶
func (vlvc VariableLoopingVUsConfig) GetMaxDuration() time.Duration
GetMaxDuration returns the maximum duration time for this scheduler, including the specified iterationTimeout, if the iterations are uninterruptible
func (VariableLoopingVUsConfig) GetMaxVUs ¶
func (vlvc VariableLoopingVUsConfig) GetMaxVUs() int64
GetMaxVUs returns the absolute maximum number of possible concurrently running VUs
func (VariableLoopingVUsConfig) Validate ¶
func (vlvc VariableLoopingVUsConfig) Validate() []error
Validate makes sure all options are configured and valid