Kubernetes cost, closed loop

See the cost.
Approve the fix.

kcost joins your AWS bill with per-minute cluster usage — every dollar attributed to a team, workload, or network path — then proposes the safe fixes and executes the ones you approve.

Read-only by default — One agent per cluster — No sidecars

  • 7/7 cluster-safety gates, live-e2e tested
  • Per-minute node & pod metrics
  • eBPF network flow data
  • Every action approval-gated
  • Self-metrics on API + agents

the problem

Your bill doesn’t look like your cluster.

Every line on your cloud invoice is an abstraction of something running in Kubernetes. The distance between the two is where budgets get argued and savings get missed.

EBS volumeswhich pods use which volumes
node-hours (on-demand)which workloads actually run
data transfer outwho talks to whom, across VPCs
spot billingwhich interruptions hit which pods

So teams stitch CUR exports and RI schedules, dashboards that disagree, Karpenter config, and ticket threads into a number that is an estimate. Then the fix — a rightsize, a spot adoption, a nodepool change — happens in another tool, by hand, without anyone checking the blast radius.

kcost closes the loop between the cost signal and the safe action.

the platform

From bill to action in one system

Attribution, budgets, optimization, and the enterprise controls — four systems that used to be four tools, on one data model.

True cost attribution

kcost joins actual AWS billing with per-minute node and pod metrics and eBPF network flows, so compute, memory, and data transfer land on the workloads that caused them. Allocation groups — match rules on namespaces and labels — roll cost up per team. When the bill corrects itself, the cost engine recomputes.

allocation groups — sample rollup
ns/paymentsteam:payments$12,480
ns/searchteam:platform$4,102
label env=stgteam:staging$1,977

Budgets & anomaly detection

Per-cluster, namespace, and team budgets with a live status ladder. Three independent detectors catch what thresholds miss.

detectors — z-score · absolute delta · new resourcewebhooks — HMAC · retry · dedupe · dead-letter

Optimizer with safe actions

Rightsizing, Spot adoption, commitment coverage, and Karpenter nodepool changes — each with a dry-run diff before anything touches a cluster.

safety gates — 7/7 pass live-e2e on a real cluster

Built for enterprise

SAML and OIDC SSO, service accounts, personal access tokens shown once at creation, entitlements enforced at every write API — and an audit trail that records who approved what, when.

the action loop

Recommendations are cheap. Safe execution is the product.

Any dashboard can list ways to cut a bill. The hard part is acting on them without taking down what the bill pays for. kcost’s loop makes every step provable — and every write reversible.

  1. 01

    Signal

    An observed cost or usage event: an anomaly, an idle resource, a workload running on-demand where Spot fits.

  2. 02

    Recommend

    A typed action with a dry-run diff and the evidence behind it. You see the exact patch before anyone else does.

  3. 03

    Approve

    A human signs off, or a policy you wrote does. Approval is one click or one line of config — never a ticket.

  4. 04

    Gate & execute

    PDBs, quorum, nodepool dedup — the cluster-safety checks run before any write lands.

  5. 05

    Verify & notify

    The result is checked against the prediction, and a signed webhook goes out with the outcome.

  6. 06

    Rollback

    Available for every action, even after an account downgrade. Rolling back is never a feature you pay for.

dry-run preview — before anything touches the clusterrec_4f2a
rec_4f2a · rightsize · ns/payments · deployment/payments-api
container api — resources.requests
- cpu: "2000m" memory: "4Gi"
+ cpu: "500m" memory: "1Gi"
evidence — 90d p95: cpu 22% of requests · mem 31%
gates — pdb ✓ · quorum ✓ · nodepool-dedup ✓

Gates, not vibes

  • Pod disruption budgets respected
  • Quorum preserved
  • Nodepool dedup
  • … 4 more cluster-safety gates

7/7 gates pass live-e2e against a real cluster. After execution, verification results and the audit entry go out over a signed webhook.

how it works

From connect to optimized in days, not quarters

Cost work runs on billing cycles, not sprints. The timeline is honest about that.

  1. 01

    Connect

    One agent per cluster. Read-only by default, no sidecars, no changes to your infrastructure. It is running in minutes.

  2. 02

    Attribute

    Your bill is joined to per-minute usage and eBPF network flows, then rolled up per team with allocation groups.

  3. 03

    Optimize

    Recommendations arrive with dry-run diffs. Approve them one at a time, or automate by policy — start on a non-prod cluster.

  4. 04

    Verify

    Safety gates before every write, verification after, alerts and the audit trail throughout. Rollback is one call away.

api-first

Everything in the UI is an API call.

The console, your scripts, and your CI pipeline share one versioned REST API. If the UI can do it, you can script it — including approving recommendations and rolling back actions.

  • Versioned REST under /v1 — the same endpoints the console uses.
  • Personal access tokens and service accounts for CI.
  • Webhooks out — HMAC-signed, with retries, dedupe, and a dead-letter queue.
  • Prometheus self-metrics in — the platform reports its own health.
  • GET/v1/clusters/{id}/cost/overview
  • GET/v1/clusters/{id}/cost/network
  • GET/v1/clusters/{id}/recommendations
  • POST/v1/recommendations/{id}:approve
  • POST/v1/actions/{id}:rollback
terminal — kcost apizsh
$ curl -s https://api.kcost.dev/v1/clusters/c_7f3a/cost/overview \
-H "Authorization: Bearer $KCOST_TOKEN"
{
  "provisioned": 48200.00,
  "allocated": 36912.50,
  "idle": 6124.75,
  "spot_share": 0.31,
  "monthly_run_rate_estimate": 144600.00,
  "currency": "USD",
  "as_of": "2026-09-17T00:00:00Z",
  "calculation_version": "2026.09"
}
$ curl -X POST https://api.kcost.dev/v1/recommendations/rec_9f2:approve \
# 200 — action a_11c queued, gates pending
Example response — values illustrative; field shapes from the OpenAPI spec.

clouds

AWS today. Multi-cloud when it’s right.

v1 is AWS, done properly: billing, per-minute usage, and network flows on one model. The other clouds are on the roadmap, not in beta.

AWSshipped in v1GCPon the roadmapAzureon the roadmapOCIon the roadmap

Turning a cloud on means its billing and attribution are correct, not just present. That’s why the rest are on the roadmap, not in beta.

pricing

Start with visibility. Add automation when you’re ready.

The plans differ by what the platform is allowed to write — not by what it can see. Every plan starts with visibility.

Monitor

See every dollar, attributed.

  • Cost attribution — bill + usage + network
  • Allocation groups, per-team cost
  • Budgets with live status
  • Anomaly detection — three detectors
  • Webhooks, API, personal access tokens
Start free trial
automation starts on non-prod

Optimize

See it, then fix it safely.

  • Everything in Monitor
  • Workload automation — rightsizing, repack, commitments
  • Infra automation — Spot, Karpenter, idle nodes
  • Approval-gated execution, then verification
  • Rollback — always available
Start free trial

Enterprise

Scale it across the company.

  • Everything in Optimize
  • SAML + OIDC SSO
  • 365-day retention
  • Managed 14–30 day proof of concept
Talk to us
14-day free trial of Monitor1430-day managed POCautomation can start on a non-prod cluster
Full pricing & comparison →

Stop estimating. Start attributing.

One agent per cluster. Read-only by default. 14 days free — no card, no sales call required to see your costs.