Documentation
¶
Index ¶
- type CPUScaleActuator
- func (cs CPUScaleActuator) Effect(state *common.State, profiles map[string]common.Profile)
- func (cs CPUScaleActuator) Group() string
- func (cs CPUScaleActuator) Name() string
- func (cs CPUScaleActuator) NextState(state *common.State, goal *common.State, profiles map[string]common.Profile) ([]common.State, []float64, []planner.Action)
- func (cs CPUScaleActuator) Perform(state *common.State, plan []planner.Action)
- type CPUScaleConfig
- type CPUScaleEffect
- type RmPodActuator
- func (rm RmPodActuator) Effect(_ *common.State, _ map[string]common.Profile)
- func (rm RmPodActuator) Group() string
- func (rm RmPodActuator) Name() string
- func (rm RmPodActuator) NextState(state *common.State, goal *common.State, profiles map[string]common.Profile) ([]common.State, []float64, []planner.Action)
- func (rm RmPodActuator) Perform(state *common.State, plan []planner.Action)
- type RmPodConfig
- type ScaleOutActuator
- func (scale ScaleOutActuator) Effect(state *common.State, profiles map[string]common.Profile)
- func (scale ScaleOutActuator) Group() string
- func (scale ScaleOutActuator) Name() string
- func (scale ScaleOutActuator) NextState(state *common.State, goal *common.State, profiles map[string]common.Profile) ([]common.State, []float64, []planner.Action)
- func (scale ScaleOutActuator) Perform(state *common.State, plan []planner.Action)
- type ScaleOutConfig
- type ScaleOutEffect
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type CPUScaleActuator ¶ added in v0.2.0
type CPUScaleActuator struct {
// contains filtered or unexported fields
}
CPUScaleActuator is an actuator supporting the resource scaling.
func NewCPUScaleActuator ¶ added in v0.2.0
func NewCPUScaleActuator(apps kubernetes.Interface, tracer controller.Tracer, cfg CPUScaleConfig) *CPUScaleActuator
NewCPUScaleActuator initializes a new actuator.
func (CPUScaleActuator) Group ¶ added in v0.2.0
func (cs CPUScaleActuator) Group() string
func (CPUScaleActuator) Name ¶ added in v0.2.0
func (cs CPUScaleActuator) Name() string
type CPUScaleConfig ¶ added in v0.2.0
type CPUScaleConfig struct {
PythonInterpreter string `json:"interpreter"`
Script string `json:"analytics_script"`
CPUMax int64 `json:"cpu_max"`
CPURounding int64 `json:"cpu_rounding"`
CPUSafeGuardFactor float64 `json:"cpu_safeguard_factor"`
MaxProActiveCPU int64 `json:"max_proactive_cpu"`
ProActiveLatencyPercentage float64 `json:"proactive_latency_percentage"`
LookBack int `json:"look_back"`
Endpoint string `json:"endpoint"`
Port int `json:"port"`
PluginManagerEndpoint string `json:"plugin_manager_endpoint"`
PluginManagerPort int `json:"plugin_manager_port"`
MongoEndpoint string `json:"mongo_endpoint"`
}
CPUScaleConfig describes the configuration for this actuator. TODO: need to validate the new parameters such as MinCore, MaxCore, CPUIncrement, and MaxProActiveCPU
type CPUScaleEffect ¶ added in v0.2.0
type CPUScaleEffect struct {
// Never ever think about making these non-public! Needed for marshalling this struct.
LatencyRange [2]float64
CPURange [2]float64
Popt [3]float64
TrainingFeatures [1]string
TargetFeature string
Image string
}
CPUScaleEffect describes the data that is stored in the knowledge base.
type RmPodActuator ¶
type RmPodActuator struct {
// contains filtered or unexported fields
}
RmPodActuator is an actuator that can remove particular PODs.
func NewRmPodActuator ¶
func NewRmPodActuator(core kubernetes.Interface, tracer controller.Tracer, cfg RmPodConfig) *RmPodActuator
NewRmPodActuator initializes a new actuator.
func (RmPodActuator) Group ¶
func (rm RmPodActuator) Group() string
func (RmPodActuator) Name ¶
func (rm RmPodActuator) Name() string
type RmPodConfig ¶
type RmPodConfig struct {
MinPods int `json:"min_pods"`
LookBack int `json:"look_back"`
Endpoint string `json:"endpoint"`
Port int `json:"port"`
PluginManagerEndpoint string `json:"plugin_manager_endpoint"`
PluginManagerPort int `json:"plugin_manager_port"`
MongoEndpoint string `json:"mongo_endpoint"`
}
RmPodConfig represents the configuration for this actuator.
type ScaleOutActuator ¶
type ScaleOutActuator struct {
// contains filtered or unexported fields
}
ScaleOutActuator is an actuator supporting horizontal scaling.
func NewScaleOutActuator ¶
func NewScaleOutActuator(apps kubernetes.Interface, tracer controller.Tracer, cfg ScaleOutConfig) *ScaleOutActuator
NewScaleOutActuator initializes a new actuator.
func (ScaleOutActuator) Group ¶
func (scale ScaleOutActuator) Group() string
func (ScaleOutActuator) Name ¶
func (scale ScaleOutActuator) Name() string
type ScaleOutConfig ¶
type ScaleOutConfig struct {
PythonInterpreter string `json:"interpreter"`
Script string `json:"analytics_script"`
MaxPods int `json:"max_pods"`
LookBack int `json:"look_back"`
MaxProActiveScaleOut int `json:"max_proactive_scale_out"`
ProActiveLatencyFactor float64 `json:"proactive_latency_factor"`
Endpoint string `json:"endpoint"`
Port int `json:"port"`
PluginManagerEndpoint string `json:"plugin_manager_endpoint"`
PluginManagerPort int `json:"plugin_manager_port"`
MongoEndpoint string `json:"mongo_endpoint"`
}
ScaleOutConfig describes the configuration for this actuator.
type ScaleOutEffect ¶
type ScaleOutEffect struct {
// TODO: make private again once refactored.
// Never ever think about making these non-public! Needed for marshalling this struct.
ThroughputRange [2]float64
ThroughputScale [2]float64
ReplicaRange [2]int
Popt [4]float64
TrainingFeatures [2]string
TargetFeature string
Image string
}
ScaleOutEffect describes the data that is stored in the knowledge base.