Duvaxa

DevOps & Cloud · Capacity forecasting

CapacityRunway

Know the day it fills up.

Every disk, volume, database, connection pool and quota, ranked by the date it runs out, forecast from the Prometheus history you already have.

SRE and platform teams running databases, Kafka or Kubernetes volumesMSPs answering for client outagesTeams paged for disk full more than once
capacity-runway · example
$ capacity-runway check --prometheus http://prometheus:9090
7 resources; 3 critical, 1 warning, 1 within the horizon
now 92% inodes ci-agent-3 /
3.1d 82% pvc kafka data-kafka-0 growth speeding up 6x
15d 73% pg-connections db-1:9187
40d 69% disk db-1 /var/lib/postgresql +2.6 GiB/day
Real run on the built-in demo estate with 14 days of hourly history.
ReadsPrometheus or CSV
CoversDisks, volumes, DBs, quotas
ForecastDaily peaks, robust trend
WritesPrometheus alert rules

The problem

Disk-full and too-many-connections outages are visible in the metrics weeks ahead, but a fixed 85% alert fires either too late or every night. Nobody looks at 200 graphs to see which one is trending towards the edge.

What it does

01

Reads Prometheus directly: disks and inodes, Kubernetes volumes, memory, conntrack, file descriptors, Postgres and MySQL connections, namespace quotas

02

Forecasts on each day's peak with a robust trend, so one spike or one cleanup doesn't move the date

03

Ignores log rotation and nightly cleanups, and notices when growth suddenly speeds up

04

One list across every resource: days left, the date, current use and growth per day

05

Any other resource through your own query and limit, or a CSV from CloudWatch, Datadog or a spreadsheet

06

Writes Prometheus alert rules for the same forecast, so it keeps watching

07

Weekly CI report that fails when something is critical

How it works

  1. Point it at Prometheus, read-only
  2. Get the list of resources that fill up, with dates
  3. Plan the fixes and install the alert rules

Works with

Prometheusnode_exporterkube-state-metricsKubernetesPostgreSQLMySQLGrafanaCSV

Runs in your CI

GitHub Actions workflow step
# Weekly capacity report
capacity-runway check --prometheus $PROM --format md --out runway.md --fail-on critical
Licensed customers get the action or command-line tool installed in their own organisation; it runs on your runners, so your code and plans never leave them. The command-line tools run in GitLab CI the same way.

Your data

  • Read-only queries; nothing is changed.
  • No agent to install.
  • Runs on your laptop or in CI.

Who it's for

SRE and platform teams running databases, Kafka or Kubernetes volumesMSPs answering for client outagesTeams paged for disk full more than once

Questions

Doesn't predict_linear already do this?

It fits raw samples, so nightly cleanups and busy hours cause false alarms. CapacityRunway fits daily peaks robustly, spots acceleration and ranks everything in one list, then writes predict_linear rules for ongoing alerts.

How much history does it need?

A few days works; two weeks or more gives steadier dates.

Related

Often used with CapacityRunway

See CapacityRunway on your own data

A 30-minute call. We run the product on your export, repository or document and walk you through the results.

Book a demo