DevZero vs Kubernetes HPA

Feature Comparison

Workload profiling

Observability

Kubernetes HPANot offered
DevZeroIncluded

Builds a usage profile per workload from collected CPU, memory and runtime data and uses it to drive rightsizing recommendations.

Automatic language detection

Observability

Kubernetes HPANot offered

HPA treats every pod the same and has no knowledge of the runtime or language inside the container.

DevZeroTen runtimes

The node agent detects JVM, Node.js, .NET, Go, Rust, GraalVM native image, Python, Ruby, Deno and Bun in every container with no workload changes. Low-privilege installs turn it off.

Network tracing (eBPF)

Observability

Kubernetes HPANot offered
DevZeroOpt-in eBPF

Collects pod-to-pod network flows with netfilter by default. An eBPF collector mode is available as an opt-in setting.

Application health profiling

Observability

Kubernetes HPANot offered

HPA only skips pods that are not ready or still starting when it computes utilization; it does not profile application health.

DevZeroIncluded

Tracks OOM kills, crash loops, CPU throttling and container startup lifecycle events for each workload.

Node group profiling for shapes and sizes

Observability

Kubernetes HPANot offered
DevZeroIncluded

Analyzes each node group and the workloads on it, then suggests node policy changes to requirements, capacity type, zones, limits and disruption settings.

Node group consolidation opportunities

Observability

Kubernetes HPANot offered
DevZeroCompaction

Previews underused nodes whose pods fit elsewhere in their node group and drains them on demand or by policy. Also flags duplicate and overlapping node policies.

Workload cost

Cost attribution

Kubernetes HPANot offered
DevZeroIncluded

Splits node prices into CPU, memory and GPU unit costs and attributes them to each workload.

Network cost

Cost attribution

Kubernetes HPANot offered
DevZeroIncluded

Prices network traffic by type, including cross-AZ, cross-region, internet egress and NAT paths, estimated at cloud list rates.

Workload storage cost

Cost attribution

Kubernetes HPANot offered
DevZeroIncluded

Calculates persistent volume claim storage cost for each workload.

Savings Plan, RI and CUD awareness

Cost attribution

Kubernetes HPANot offered
DevZeroBilling export

Reads AWS, GCP and Azure billing exports to show commitment coverage and utilization and to price nodes at commitment-adjusted cost. It does not buy or manage commitments.

Vertical pod autoscaling

Workload autoscaling

Kubernetes HPANot offered
DevZeroRequests and limits

Sizes CPU and memory requests per container and adjusts memory limits with them. Applies changes in place on Kubernetes 1.33+, with a restart-based fallback when in place is unavailable.

Flexible instance shapes in node groups

Cluster autoscaling

Kubernetes HPANot offered
DevZeroIncluded

Node policies select instances by category, family, size and capacity type, so one policy spans many shapes.

Spot-to-spot consolidation

Cluster autoscaling

Kubernetes HPANot offered
DevZeroIncluded

Installs Karpenter with spot-to-spot consolidation turned on for AWS, Azure, GCP and OCI, with a per-cluster toggle in Karpenter settings.

Manage existing Karpenter

Cluster autoscaling

Kubernetes HPANot offered
DevZeroIncluded

Mirrors existing Karpenter NodePools as read-only cluster-managed policies, and a migration wizard moves them under DevZero management.

Static capacity

Cluster autoscaling

Kubernetes HPANot offered
DevZeroIncluded

Supports fixed-size NodePools through spec.replicas on AWS, Azure and GCP once you turn on the Static capacity setting. OCI is not supported.

Live migration of running pods

Reliability

Kubernetes HPANot offered
DevZeroWithin one cluster

Checkpoints a running container with CRIU and restores it on the replacement pod with its in-memory state. Opt-in per policy, on labelled nodes in the same cluster.

Checks before a change is applied

Reliability

Kubernetes HPANot offered
DevZeroOpt-in, Pro

Live migration checks workload kind, image coherence and node readiness first, and skips the workload without changes if a check fails. Live migration is opt-in per policy and part of Pro.

Alerts on restarts, OOM kills and throttling

Reliability

Kubernetes HPANot offered

HPA records scaling events and status conditions but sends no alerts on restarts, OOM kills or throttling.

DevZeroIncluded

Alerts on application restarts, out-of-memory kills and CPU throttling, delivered by email or by webhook to Slack, Microsoft Teams, Discord or your own endpoint.

API latency, throughput and error detection

Observability

Kubernetes HPANot offered
DevZeroOpt-in

Records inbound request rate, errors and latency per container from socket probes in the network monitor. Off by default; enable it with the containerRedMetrics Helm value.

Horizontal pod autoscaling

Workload autoscaling

Kubernetes HPABuilt in

Built into Kubernetes as the autoscaling/v2 API. Scales replicas on Resource, ContainerResource, custom, object and external metrics, with behavior policies and a stabilization window.

DevZeroVia KEDA

Horizontal scaling runs through KEDA ScaledObjects rendered from the workload rule. KEDA is an opt-in install, off by default, and DevZero creates no native HPA.

Coexists with HPA, VPA and KEDA

Workload autoscaling

Kubernetes HPADifferent metrics only

Runs alongside VPA only when they act on different metrics; both on CPU or memory conflict. KEDA creates and drives an HPA object itself.

DevZeroDefers to them

Detects existing autoscalers automatically. An actuating VPA stands DevZero down. With an HPA it skips replica scaling, keeps vertical sizing, and offers an optional clamp against triggering scale-out.

Language-aware autoscaling

Workload autoscaling

Kubernetes HPANot offered
DevZeroJVM only

Raises the CPU request of detected Java containers to a startup floor, 75m by default, and can tune JVM heap flags when the heap rule is on. No other runtime has its own rule.

Workload profile-based autoscaling

Workload autoscaling

Kubernetes HPANot offered
DevZeroBehavior-based sizing

The sizing engine adapts percentile targets and headroom to each workload's observed CPU and memory behavior. No rule triggers scaling from a stored profile.

API-performance-based autoscaling

Workload autoscaling

Kubernetes HPACustom metrics

Scales on requests per second or latency only if an adapter exposes them through the custom or external metrics API. HPA does not collect them itself.

DevZeroNot offered

RED metrics are collected for visibility, but no workload rule scales on them.

OOM and CPU throttling handling

Workload autoscaling

Kubernetes HPANot offered
DevZeroOOM by default

Raises memory right after an OOM kill, on by default, with configurable multipliers and cooldowns. A CPU throttling response exists in the operator but ships off.

Savings plan aware node choice

Cluster autoscaling

Kubernetes HPANot offered
DevZeroEstimates only

Savings estimates flag the share of billed node hours under a reservation or savings plan. It does not buy commitments or steer nodes onto them.

Workload profile-based node scaling

Cluster autoscaling

Kubernetes HPANot offered
DevZeroSuggestions only

Node policy suggestions read workload profiles, such as spot suitability and startup time, to propose spot capacity and grace periods. You apply them; no rule scales nodes on profiles.

Last updated

Pricing Compared

HPA is free; DevZero is billed per CPU with a free plan.

Kubernetes HPA

Freeopen source

  • Software. Built into Kubernetes, no license fee
  • Pods and nodes. You pay for the replicas it adds
  • Your time. Choosing targets and tuning behavior

Free to enable; the bill is the capacity it scales into.

$5per CPU per month

  • Free. $0 for monitoring on unlimited clusters
  • Pro. $5 per CPU per month, billed monthly
  • No annual commitment

Billed monthly on consumption. The more you save on compute, the less you pay DevZero.

Start free

Teams Already Running DevZero

Published results from customers who run DevZero in production.

How DevZero Works With HPA

DevZero reads your HPAs, sizes their requests, and leaves replicas alone.

  1. 1Install

    Keep Your HPAs

    Install the operator. It reads each HPA as it is and never edits it.

  2. 2Observe

    See Usage Against Requests

    Each recommendation on an HPA workload shows projected utilization and replicas.

  3. 3Take over

    Right-Size the Requests

    Pick per policy: size normally, clamp to the HPA target, or skip.

  4. 4Keep

    HPA Keeps the Replicas

    Use a DevZero horizontal rule only on workloads without their own HPA.

DevZero vs Kubernetes HPA: FAQ

HPA changes how many replicas run. DevZero changes how much CPU and memory each replica requests. For a workload with its own HPA, DevZero leaves replica counts to it.

No. DevZero reads your HPAs as they are and does not edit them. It sizes requests and proposes no replica changes for those workloads.

It can shift it, since lower requests raise utilization. DevZero shows projected utilization and replicas first. A policy can size normally (default), clamp to the HPA target with 20% headroom, or skip.

HPA can on object and external metrics, beta since Kubernetes 1.37, but not on CPU or memory. DevZero's KEDA template accepts a minimum of 0 and an idle replica count.

HPA is free and built in; you pay for the pods and nodes it runs. DevZero Free is $0 for monitoring, and Pro is $5 per CPU per month.

What our Customers say

Databahn logo

“We were essentially able to reduce the cost of that cluster by about 75%. On AWS, DevZero demonstrated they could achieve significantly higher savings than we initially thought possible.”

Mihir Nair

Mihir Nair

Head of Architecture, Databahn

See your own numbers first

In a demo you can

  • Use your own data

    See your cluster costs and recommendations in the dashboard.

  • Compare side by side

    Check DevZero's results against your current tool.

  • Plan the switch

    Move one namespace at a time, and keep the rest where it is.