“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
Automatic language detection
Observability
Recommendations treat every container the same way, based on observed CPU and RAM usage.
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
Not offered as tracing. The network costs DaemonSet measures traffic volume per pod by destination class to price it, not to trace requests.
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
Kubecost reports cost and resource efficiency, not application health signals.
Tracks OOM kills, crash loops, CPU throttling and container startup lifecycle events for each workload.
Node storage cost
Cost attribution
The Assets API lists disks as priced Disk assets in the Storage category, alongside nodes and load balancers.
Coexists with HPA, VPA and KEDA
Workload autoscaling
Guidance exists only for GitOps tools such as Argo CD, which must be told to ignore Kubecost's request changes.
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.
Spot-to-spot consolidation
Cluster autoscaling
Kubecost does not provision or replace nodes, so it performs no spot consolidation.
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
Node Group Sizing can group nodes by the karpenter_sh_nodepool label for recommendations, but Kubecost does not configure or manage Karpenter.
Mirrors existing Karpenter NodePools as read-only cluster-managed policies, and a migration wizard moves them under DevZero management.
Static capacity
Cluster autoscaling
No feature for holding reserved or warm node capacity is described.
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
Container resizing patches the workload and rolls out new pods, so pods restart.
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.
Alerts on restarts, OOM kills and throttling
Reliability
Alerts cover budgets, efficiency, spend changes, and anomalies, sent by email, Slack, or Microsoft Teams.
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.
Workload profiling
Observability
Tracks CPU and RAM usage against requests per container and pod controller to compute efficiency and sizing advice. No deeper runtime profiling is documented.
Builds a usage profile per workload from collected CPU, memory and runtime data and uses it to drive rightsizing recommendations.
API latency, throughput and error detection
Observability
No API latency, throughput, or error rate collection is described.
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.
Node group consolidation opportunities
Observability
The Underutilized Nodes insight lists low-utilization nodes that pass node and pod checks for safe draining. Kubecost does not turn nodes down itself.
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.
Horizontal pod autoscaling
Workload autoscaling
v3 Actions cover container request resizing, resource quota resizing, and namespace turndown; replica counts are left to the native HPA.
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.
Vertical pod autoscaling
Workload autoscaling
A container sizing Action patches requests on the Deployment or StatefulSet during scheduled windows, which rolls out new pods. Limits are not resized yet.
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.
Language-aware autoscaling
Workload autoscaling
Sizing uses the same max or percentile algorithm for every container regardless of runtime.
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.
OOM and CPU throttling handling
Workload autoscaling
No specific OOM kill or CPU throttling reaction is described; undersized containers appear as recommendations to raise requests.
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.
Flexible instance shapes in node groups
Cluster autoscaling
Node Group Sizing can recommend a different instance type per node group. Kubecost does not provision nodes or change node groups itself.
Node policies select instances by category, family, size and capacity type, so one policy spans many shapes.
Workload profile-based node scaling
Cluster autoscaling
Kubecost has no cluster autoscaler, so workload profiles do not drive node scaling.
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.
Checks before a change is applied
Reliability
On Enterprise, Synchronize Resource Quotas raises a namespace quota before scaling containers up so pods are not blocked. Namespace turndown offers a dry run mode.
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.
Last updated
Kubecost is free to 250 cores; DevZero is free for monitoring, then $5 per CPU.
$63.60per core per year, Enterprise Self-hosted
Actions on the free tier cover one cluster.
$5per CPU per month
Pro has no annual commitment.
Start freePublished results from customers who run DevZero in production.
Both read cost, so run them together, then move one namespace at a time.
Connect your billing export; the Free tier changes no workload.
Compare DevZero departments with your Collections; rebuild chargeback groupings first.
Turn off Actions per namespace, then add a DevZero workload rule.
Keep Kubecost for reporting only if you rely on Collections or budgets.
Kubecost is an allocation and reporting product whose Actions size requests, so Kubernetes rolls out new pods. DevZero also covers allocation and resizes in place or by live migration.
Foundations is free for unlimited clusters up to 250 cores, with 15-day retention. Actions on the free tier cover one cluster. Larger deployments use Enterprise tiers.
For container requests, yes. Kubecost 3.x Actions apply recommendations on a schedule once enabled. Container limit resizing is listed as a future version.
Yes, with an optional component that classifies traffic as internet, cross-region, cross-zone, or NAT Gateway. DevZero shows egress cost by destination domain.
DevZero Free is $0 and Pro is $5 per CPU per month. Kubecost is free to 250 cores; Enterprise Self-hosted lists at $63.60 per core per year.
“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.