Skip to content
Calcrivo

Prometheus Storage Calculator

Estimate the disk storage Prometheus needs based on retention period, sample ingestion rate and bytes per compressed sample.

Inputs

days

How long Prometheus retains samples before compaction removes them.

samples/sec

Total samples ingested per second across all scraped targets (active series ÷ scrape interval).

bytes

Compressed on-disk bytes per sample; Prometheus's default TSDB compression typically achieves 1-2 bytes/sample.

×

Number of Prometheus replicas storing the same data (e.g. HA pairs).

Total Storage Needed

18.10GiB

Total Storage Needed

0.018TiB

Daily Storage Growth

1.21GiB/day

Total Samples Retained

12,960,000,000

Step by step

  1. Total seconds in retention window

    15 × 86400

    = 1,296,000 s

  2. Total samples stored

    10000 × 1,296,000

    = 12,960,000,000

  3. Storage: samples × bytes/sample × replicas

    12,960,000,000 × 1.5 × 1

    = 18.10 GiB

How it works

Prometheus's TSDB stores each scraped value as a compressed sample. Total storage is retention_days × ingestion_rate (samples/sec) × bytes_per_sample × 86400 seconds/day, multiplied by any replication factor for HA setups. Prometheus's default double-delta compression typically achieves 1-2 bytes per sample, but high-cardinality or highly variable metrics can push this higher.

Formula

storage = ingestionRate × retentionDays × 86400 × bytesPerSample × replicationFactor

I
Ingestion rate in samples/sec
D
Retention period in days
b
Compressed bytes per sample
r
Replication factor
S
Total storage in bytes

Frequently Asked Questions

How do I find my ingestion rate?

Query `rate(prometheus_tsdb_head_samples_appended_total[5m])` on your Prometheus server, or estimate it as (number of active time series) ÷ (average scrape interval in seconds).

Why is my actual disk usage higher than this estimate?

WAL (write-ahead log) segments, index overhead, and un-compacted blocks add overhead beyond pure sample storage — budgeting 20-30% extra headroom on top of this estimate is common practice.

Does increasing scrape interval reduce storage linearly?

Yes — doubling the scrape interval roughly halves the ingestion rate and therefore storage, at the cost of coarser time resolution between data points.

Should I use remote write / long-term storage instead of local disk?

For retention beyond 15-30 days or storage exceeding what a single node's disk can hold, remote-write to systems like Thanos, Cortex or Mimir is generally preferred over scaling local Prometheus disk.

You might also need