v1

package
v1.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 16, 2023 License: MIT Imports: 6 Imported by: 0

Documentation

Index

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

func (*StressorConfig) GetId

func (iac *StressorConfig) GetId() string

Get internal adapter id

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL