Documentation
¶
Overview ¶
Package config contains the config for the autoscaler
Index ¶
Constants ¶
View Source
const (
// ConfigName is the name of the config map of the autoscaler.
ConfigName = "config-autoscaler"
// BucketSize is the size of the buckets of stats we create.
// NB: if this is more than 1s, we need to average values in the
// metrics buckets.
BucketSize = 1 * time.Second
)
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Config ¶
type Config struct {
// Feature flags.
EnableScaleToZero bool
// Target concurrency knobs for different container concurrency configurations.
ContainerConcurrencyTargetFraction float64
ContainerConcurrencyTargetDefault float64
// TargetUtilization is used for the metrics other than concurrency. This is not
// configurable now. Customers can override it by specifying
// autoscaling.knative.dev/targetUtilizationPercentage in Revision annotation.
// TODO(yanweiguo): Expose this to config-autoscaler configmap and eventually
// deprecate ContainerConcurrencyTargetFraction.
TargetUtilization float64
// RPSTargetDefault is the default target value for requests per second.
RPSTargetDefault float64
// NB: most of our computations are in floats, so this is float to avoid casting.
TargetBurstCapacity float64
// ActivatorCapacity is the number of the concurrent requests an activator
// task can accept. This is used in activator subsetting algorithm, to determine
// the number of activators per revision.
ActivatorCapacity float64
// AllowZeroInitialScale indicates whether InitialScale and
// autoscaling.internal.knative.dev/initialScale are allowed to be set to 0.
AllowZeroInitialScale bool
// InitialScale is the cluster-wide default initial revision size for newly deployed
// services. This can be set to 0 iff AllowZeroInitialScale is true.
InitialScale int32
// MaxScale is the default max scale for any revision created without an
// autoscaling.knative.dev/maxScale annotation
MaxScale int32
// General autoscaler algorithm configuration.
MaxScaleUpRate float64
MaxScaleDownRate float64
StableWindow time.Duration
PanicWindowPercentage float64
PanicThresholdPercentage float64
ScaleToZeroGracePeriod time.Duration
ScaleToZeroPodRetentionPeriod time.Duration
PodAutoscalerClass string
}
Config defines the tunable autoscaler parameters +k8s:deepcopy-gen=true
func NewConfigFromConfigMap ¶
func NewConfigFromConfigMap(configMap *corev1.ConfigMap) (*Config, error)
NewConfigFromConfigMap creates a Config from the supplied ConfigMap
func NewConfigFromMap ¶
func NewConfigFromMap(data map[string]string) (*Config, error)
NewConfigFromMap creates a Config from the supplied map
func (*Config) DeepCopy ¶
func (in *Config) DeepCopy() *Config
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Config.
func (*Config) DeepCopyInto ¶
func (in *Config) DeepCopyInto(out *Config)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
Click to show internal directories.
Click to hide internal directories.