Documentation ¶
Index ¶
- func GetPayloadSize(payloadSpec PayloadSpec) int64
- func GetPayloadVariant(payloadSpec PayloadSpec) constants.PayloadSizeVariant
- func ParseResource(payloadSpec PayloadSpec) (int64, bool)
- type ConsumerConfig
- type DeploymentSpec
- type Gateway
- type InvocationConfig
- type PayloadSpec
- type PrimaryAdapterSpec
- type ProducerConfig
- type RepositoryClientConfig
- type RepositoryConfig
- type SecondaryAdapterConfig
- type ServerConfig
- type ServiceUnitConfig
- type Step
- type StressorConfig
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func GetPayloadSize ¶
func GetPayloadSize(payloadSpec PayloadSpec) int64
func GetPayloadVariant ¶
func GetPayloadVariant(payloadSpec PayloadSpec) constants.PayloadSizeVariant
func ParseResource ¶
func ParseResource(payloadSpec PayloadSpec) (int64, bool)
Types ¶
type ConsumerConfig ¶
type ConsumerConfig struct { Variant constants.BrokerVariant `json:"variant,omitempty" validate:"required"` Topic string `json:"topic,omitempty" validate:"required"` }
Config fields for Brokers
func (*ConsumerConfig) GetConsumerGroupId ¶
func (bac *ConsumerConfig) GetConsumerGroupId(serviceName string) string
Get consumer group id
func (*ConsumerConfig) GetGroupByKey ¶
func (bac *ConsumerConfig) GetGroupByKey() string
Get consumer adapter id
func (*ConsumerConfig) GetId ¶
func (bac *ConsumerConfig) GetId(serviceName string) string
Get consumer adapter id
type DeploymentSpec ¶
type DeploymentSpec struct { Replicas int32 `json:"replicas,omitempty"` Gateway *Gateway `json:"gateway,omitempty"` Resource *corev1.ResourceRequirements `json:"resources,omitempty"` EnvVar []corev1.EnvVar `json:"env,omitempty"` }
DeploymentSpec contains configuration for deployment
type Gateway ¶
type Gateway struct { // VirtualUsers is the number of virtual users simulated. VirtualUsers int32 `json:"virtualUsers,omitempty"` // Duration given in minutes Duration int32 `json:"duration,omitempty"` }
Gateway contains config information about loadgenerator
type InvocationConfig ¶
type InvocationConfig struct { Variant constants.SeverAdapterVariant `json:"variant,omitempty" validate:"required,oneof=rest grpc"` Service string `json:"service,omitempty" validate:"required"` Action constants.Action `json:"action,omitempty" validate:"required"` Route string `json:"route,omitempty" validate:"required"` Payload PayloadSpec `json:"payload,omitempty"` }
Config fields for server services
func (*InvocationConfig) GetGroupByKey ¶
func (sac *InvocationConfig) GetGroupByKey() string
Get group key
func (*InvocationConfig) GetId ¶
func (sac *InvocationConfig) GetId() string
Get server secondary adapter id
type PayloadSpec ¶
type PayloadSpec struct { Size string `json:"size,omitempty"` Variant constants.PayloadSizeVariant `json:"class,omitempty" validate:"omitempty,oneof=small medium large"` Count int `json:"payloadCount,omitempty"` }
PayloadSpec contains configuration for payload sent by adapters
type PrimaryAdapterSpec ¶
type PrimaryAdapterSpec struct { ServerConfig *ServerConfig `json:"server,omitempty"` ConsumerConfig *ConsumerConfig `json:"consumer,omitempty"` RepositoryConfig *RepositoryConfig `json:"repository,omitempty"` Steps []Step `json:"steps,omitempty" validate:"required"` // +optional Selector *metav1.LabelSelector `json:"selector,omitempty"` }
PrimaryAdapterSpec must be attachted to a service unit
func (*PrimaryAdapterSpec) GetGroupByKey ¶
func (ias *PrimaryAdapterSpec) GetGroupByKey() string
Get primary adapter group by key
func (*PrimaryAdapterSpec) GetId ¶
func (ias *PrimaryAdapterSpec) GetId(serviceName string) string
Get primary adapter id
type ProducerConfig ¶
type ProducerConfig struct { Variant constants.BrokerVariant `json:"variant,omitempty" validate:"required,oneof=kafka rabbitmq pulsar"` Topic string `json:"topic,omitempty" validate:"required"` Payload PayloadSpec `json:"payload,omitempty"` }
Config fields for Brokers
func (*ProducerConfig) GetGroupByKey ¶
func (bac *ProducerConfig) GetGroupByKey() string
Get broker secondary adapter group by key
func (*ProducerConfig) GetId ¶
func (bac *ProducerConfig) GetId() string
Get broker secondary adapter id
type RepositoryClientConfig ¶
type RepositoryClientConfig struct { Name string `json:"name,omitempty" validate:"required"` Variant constants.RepositoryVariant `json:"variant,omitempty" validate:"required,oneof=mongo redis postgre"` Action constants.Action `json:"action,omitempty" validate:"omitempty"` Payload PayloadSpec `json:"payload,omitempty"` }
Config fields for repository services
func (*RepositoryClientConfig) GetGroupByKey ¶
func (sac *RepositoryClientConfig) GetGroupByKey() string
Get repository secondary adapter group by key
func (*RepositoryClientConfig) GetId ¶
func (sac *RepositoryClientConfig) GetId() string
Get repository secondary adapter id
type RepositoryConfig ¶
type RepositoryConfig struct {
Variant constants.RepositoryVariant `json:"variant,omitempty" validate:"required,oneof=mongo redis"`
}
Config fields for repository services
func (*RepositoryConfig) GetGroupByKey ¶
func (rac *RepositoryConfig) GetGroupByKey() string
Get repository adapter group by key
func (*RepositoryConfig) GetId ¶
func (sac *RepositoryConfig) GetId(serviceName string) string
Get repository adapter id
type SecondaryAdapterConfig ¶
type SecondaryAdapterConfig struct { InvocationConfig *InvocationConfig `json:"invocation,omitempty"` RepositoryConfig *RepositoryClientConfig `json:"repository,omitempty"` ProducerConfig *ProducerConfig `json:"producer,omitempty"` StressorConfig *StressorConfig `json:"stressor,omitempty"` }
secondary Adapter definition for a step. one of the adapter type must be provided
func (SecondaryAdapterConfig) GetGroupByKey ¶
func (sac SecondaryAdapterConfig) GetGroupByKey() string
Get primary adapter group by key Get secondary adapter id
func (*SecondaryAdapterConfig) GetId ¶
func (sac *SecondaryAdapterConfig) GetId() string
Get secondary adapter id
type ServerConfig ¶
type ServerConfig struct { Variant constants.SeverAdapterVariant `json:"variant,omitempty" validate:"required,oneof=rest grpc"` Action constants.Action `json:"action,omitempty" validate:"required"` Route string `json:"route,omitempty" validate:"required"` Payload PayloadSpec `json:"payload,omitempty"` // applies to only gateway service // refers to the weight applied to the route // intentionally a pointer to destinguish 0 Weight *int32 `json:"weight,omitempty"` }
Config fields for repository services
func (*ServerConfig) GetGroupByKey ¶
func (sac *ServerConfig) GetGroupByKey() string
Get invocation adapter id
func (*ServerConfig) GetId ¶
func (sac *ServerConfig) GetId(serviceName string) string
Get invocation adapter id
type ServiceUnitConfig ¶
type ServiceUnitConfig struct { Name string `json:"name,omitempty" validate:"required"` Version string `json:"version,omitempty" validate:"required"` AdapterConfigs []PrimaryAdapterSpec `json:"adapters,omitempty" validate:"required"` DeploymentSpec DeploymentSpec `json:"deployment,omitempty"` }
this type is not used by the custom resource.
type Step ¶
type Step struct { AdapterConfig *SecondaryAdapterConfig `json:"adapter,omitempty" validate:"required"` Concurrent bool `json:"concurrent,omitempty" ` }
A task to be performed in a single step
type StressorConfig ¶
type StressorConfig struct { Name string `json:"name,omitempty" validate:"required"` Variant constants.StressorValiant `json:"variant,omitempty" validate:"required,oneof=cpu memory disk"` Duration string `json:"duration,omitempty" validate:"required"` ThreadCount int `json:"threads,omitempty" validate:"omitempty"` Payload PayloadSpec `json:"payload,omitempty"` }
Config fields for Stressor