reco

package
v0.0.0-...-2dbac4b Latest Latest
Warning

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

Go to latest
Published: Jan 19, 2024 License: Apache-2.0 Imports: 24 Imported by: 0

Documentation

Index

Constants

View Source
const (
	ScaledObjectField         = "spec.scaleTargetRef.name"
	OttoscalrMaxPodAnnotation = "ottoscalr.io/max-pods"
)

Variables

This section is empty.

Functions

This section is empty.

Types

type AgingPolicyIterator

type AgingPolicyIterator struct {
	Age time.Duration
	// contains filtered or unexported fields
}

func NewAgingPolicyIterator

func NewAgingPolicyIterator(k8sClient client.Client, age time.Duration) *AgingPolicyIterator

func (*AgingPolicyIterator) GetName

func (pi *AgingPolicyIterator) GetName() string

func (*AgingPolicyIterator) NextPolicy

func (pi *AgingPolicyIterator) NextPolicy(ctx context.Context, wm WorkloadMeta) (*Policy, error)

type BreachAnalyzer

type BreachAnalyzer struct {
	// contains filtered or unexported fields
}

func NewBreachAnalyzer

func NewBreachAnalyzer(k8sClient client.Client, scraper metrics.Scraper, cpuRedline float64, metricStep time.Duration) (*BreachAnalyzer, error)

func (*BreachAnalyzer) GetName

func (pi *BreachAnalyzer) GetName() string

func (*BreachAnalyzer) NextPolicy

func (pi *BreachAnalyzer) NextPolicy(ctx context.Context, wm WorkloadMeta) (*Policy, error)

type CpuUtilizationBasedRecommender

type CpuUtilizationBasedRecommender struct {
	// contains filtered or unexported fields
}

func NewCpuUtilizationBasedRecommender

func NewCpuUtilizationBasedRecommender(k8sClient client.Client,
	redLineUtil float64,
	metricWindow time.Duration,
	scraper metrics.Scraper,
	metricsTransformer []metrics.MetricsTransformer,
	metricStep time.Duration,
	minTarget int,
	maxTarget int,
	metricsPercentageThreshold int,
	clientsRegistry registry.DeploymentClientRegistry,
	autoscalerClient autoscaler.AutoscalerClient,
	logger logr.Logger) *CpuUtilizationBasedRecommender

func (*CpuUtilizationBasedRecommender) Recommend

type DefaultPolicyIterator

type DefaultPolicyIterator struct {
	// contains filtered or unexported fields
}

func NewDefaultPolicyIterator

func NewDefaultPolicyIterator(k8sClient client.Client) *DefaultPolicyIterator

func (*DefaultPolicyIterator) GetName

func (pi *DefaultPolicyIterator) GetName() string

func (*DefaultPolicyIterator) NextPolicy

func (pi *DefaultPolicyIterator) NextPolicy(ctx context.Context, wm WorkloadMeta) (*Policy, error)

type Policy

type Policy struct {
	Name                    string `json:"name"`
	RiskIndex               int    `json:"riskIndex"`
	MinReplicaPercentageCut int    `json:"minReplicaPercentageCut"`
	TargetUtilization       int    `json:"targetUtilization"`
}

func PolicyFromCR

func PolicyFromCR(policy *v1alpha1.Policy) *Policy

type PolicyIterator

type PolicyIterator interface {
	NextPolicy(ctx context.Context, wm WorkloadMeta) (*Policy, error)
	GetName() string
}

type RecoWorkflowBuilder

type RecoWorkflowBuilder RecommendationWorkflowImpl

func NewRecommendationWorkflowBuilder

func NewRecommendationWorkflowBuilder() *RecoWorkflowBuilder

func (*RecoWorkflowBuilder) Build

func (*RecoWorkflowBuilder) WithK8sClient

func (b *RecoWorkflowBuilder) WithK8sClient(k8sClient client.Client) *RecoWorkflowBuilder

func (*RecoWorkflowBuilder) WithLogger

func (b *RecoWorkflowBuilder) WithLogger(log logr.Logger) *RecoWorkflowBuilder

func (*RecoWorkflowBuilder) WithMinRequiredReplicas

func (b *RecoWorkflowBuilder) WithMinRequiredReplicas(minRequiredReplicas int) *RecoWorkflowBuilder

func (*RecoWorkflowBuilder) WithPolicyIterator

func (b *RecoWorkflowBuilder) WithPolicyIterator(p PolicyIterator) *RecoWorkflowBuilder

func (*RecoWorkflowBuilder) WithPolicyStore

func (b *RecoWorkflowBuilder) WithPolicyStore(policyStore policy.Store) *RecoWorkflowBuilder

func (*RecoWorkflowBuilder) WithRecommender

func (b *RecoWorkflowBuilder) WithRecommender(r Recommender) *RecoWorkflowBuilder

type RecommendationWorkflow

type RecommendationWorkflow interface {
	Execute(ctx context.Context, wm WorkloadMeta) (*v1alpha1.HPAConfiguration, *v1alpha1.HPAConfiguration, *Policy, error)
}

type RecommendationWorkflowImpl

type RecommendationWorkflowImpl struct {
	// contains filtered or unexported fields
}

func (*RecommendationWorkflowImpl) Execute

type Recommender

type Recommender interface {
	Recommend(ctx context.Context, wm WorkloadMeta) (*v1alpha1.HPAConfiguration, error)
}

type TimerEvent

type TimerEvent struct {
	Timestamp time.Time
	Delta     float64
}

type WorkloadMeta

type WorkloadMeta struct {
	metav1.TypeMeta
	Name      string
	Namespace string
}

Jump to

Keyboard shortcuts

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