Skip to content

HPA metric types

The Horizontal Pod Autoscaler (HPA) in Kubernetes relies on specific metric types defined in the spec.metrics field to determine scaling behavior^[400-devops__06-Kubernetes__k8s-ithelp__Day26__README.md]. These Metrics define the source of the data and the target value that triggers scaling.

Resource Metrics

Resource Metrics refer to standard Kubernetes resources reported by the Metrics Server^[400-devops__06-Kubernetes__k8s-ithelp__Day26__README.md]. Common examples include CPU and memory^[400-devops__06-Kubernetes__k8s-ithelp__Day26__README.md].

  • Target Type: Utilization
    • This represents the resource usage as a percentage of the resource request defined for each Pod^[400-devops__06-Kubernetes__k8s-ithelp__Day26__README.md].

Pods Metrics

This metric type describes a specific metric for each Pod in the scaling target^[400-devops__06-Kubernetes__k8s-ithelp__Day26__README.md]. Values are averaged across all Pods before being compared to the target value^[400-devops__06-Kubernetes__k8s-ithelp__Day26__README.md].

  • Target Type: AverageValue
    • Defines a target quantity (e.g., 1k) for the average metric value across all Pods^[400-devops__06-Kubernetes__k8s-ithelp__Day26__README.md].
  • Selector: Can be used to filter specific metric scopes, acting like a labelSelector^[400-devops__06-Kubernetes__k8s-ithelp__Day26__README.md].

Object Metrics

Object Metrics monitor a single Kubernetes object described in the metric configuration^[400-devops__06-Kubernetes__k8s-ithelp__Day26__README.md]. A common example is an Ingress object, where scaling might be based on traffic load^[400-devops__06-Kubernetes__k8s-ithelp__Day26__README.md].

  • Target Type: Value
    • Specifies a direct target quantity (e.g., 10k) for the described object^[400-devops__06-Kubernetes__k8s-ithelp__Day26__README.md].
  • DescribedObject: Identifies the specific Kubernetes resource (e.g., kind: Ingress, name: main-route) being monitored^[400-devops__06-Kubernetes__k8s-ithelp__Day26__README.md].

External Metrics

External Metrics allow scaling based on Metrics from outside the Kubernetes cluster, typically sourced from external monitoring systems^[400-devops__06-Kubernetes__k8s-ithelp__Day26__README.md]. This is useful for scenarios requiring Metrics not native to Kubernetes, such as Message Queue lengths^[400-devops__06-Kubernetes__k8s-ithelp__Day26__README.md].

  • Target Type: AverageValue
    • Sets a target value for the metric, calculated as an average quantity^[400-devops__06-Kubernetes__k8s-ithelp__Day26__README.md].
  • Selector: Matches labels to identify the specific metric stream (e.g., queue: "worker_tasks")^[400-devops__06-Kubernetes__k8s-ithelp__Day26__README.md].

Sources

^[400-devops__06-Kubernetes__k8s-ithelp__Day26__README.md]