“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
Head of Architecture, Databahn
Workload profiling
Observability
Builds a usage profile per workload from collected CPU, memory and runtime data and uses it to drive rightsizing recommendations.
Automatic language detection
Observability
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
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
Tracks OOM kills, crash loops, CPU throttling and container startup lifecycle events for each workload.
Node group profiling for shapes and sizes
Observability
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
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
Splits node prices into CPU, memory and GPU unit costs and attributes them to each workload.
Network cost
Cost attribution
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
Calculates persistent volume claim storage cost for each workload.
Savings Plan, RI and CUD awareness
Cost attribution
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
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.
API-performance-based autoscaling
Workload autoscaling
Scales on API metrics, Prometheus queries, or HTTP request queues using built-in scalers and the KEDA HTTP Add-on.
RED metrics are collected for visibility, but no workload rule scales on them.
Flexible instance shapes in node groups
Cluster autoscaling
Node policies select instances by category, family, size and capacity type, so one policy spans many shapes.
Spot-to-spot consolidation
Cluster autoscaling
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
Mirrors existing Karpenter NodePools as read-only cluster-managed policies, and a migration wizard moves them under DevZero management.
Static capacity
Cluster autoscaling
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
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
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
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
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
Creates and manages an underlying HorizontalPodAutoscaler for ScaledObjects, driving replica scaling from 1 to N alongside scale-to-zero.
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.
Predictive workload scaling
Workload autoscaling
Includes an experimental Elastic ML Forecast scaler for prediction-driven scaling. Standard KEDA triggers react to observed event queue depths.
Workload forecasts estimate cost only, and no rule scales from a forecast.
Language-aware autoscaling
Workload autoscaling
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
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.
OOM and CPU throttling handling
Workload autoscaling
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
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
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
KEDA is free and open source; DevZero offers free monitoring and charges $5 per CPU per month for automated optimization.
Freeopen source
Graduated CNCF project maintained by the open-source community.
$5per CPU per month
Billed monthly on consumption. The more you save on compute, the less you pay DevZero.
Start freePublished results from customers who run DevZero in production.
DevZero integrates with KEDA as its horizontal scaling engine while rightsizing container resources.
Install the DevZero operator. It discovers existing ScaledObjects and observes resource consumption.
DevZero analyzes historical CPU and memory utilization across traffic surges and idle periods.
DevZero applies vertical rightsizing recommendations so replicas run with optimal resource allocations.
KEDA continues managing replica counts from 0 to N based on event triggers, while DevZero optimizes each pod.
KEDA is an event-driven horizontal autoscaler that adds or removes pod replicas based on external event sources like queues and streams. DevZero is a Kubernetes cost optimization platform that rightsizes container CPU and memory requests, monitors spend, and optimizes cluster nodes. They complement each other.
Yes. DevZero includes a KEDA template on workload rules that lets you configure minimum, maximum, and idle replicas and triggers directly, rendering native KEDA ScaledObject custom resources in your cluster.
No. DevZero optimizes vertical container sizing (CPU and memory requests and limits) and node provisioning, while KEDA manages horizontal replica scaling. DevZero detects KEDA ScaledObjects and avoids horizontal scaling conflicts.
Yes. KEDA natively scales workloads to zero when event queues are idle. DevZero's KEDA template supports setting minimum and idle replicas to zero, allowing idle event-driven services to consume no pod resources.
KEDA is a free, open-source CNCF graduated project under the Apache 2.0 license. DevZero offers a free tier for cluster cost monitoring and a Pro plan at $5 per CPU per month for automated rightsizing and optimization.
“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
Head of Architecture, Databahn
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.