Prometheus Storage Calculator
Estimate the disk storage Prometheus needs based on retention period, sample ingestion rate and bytes per compressed sample.
Inputs
How long Prometheus retains samples before compaction removes them.
Total samples ingested per second across all scraped targets (active series ÷ scrape interval).
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
Total seconds in retention window
15 × 86400
= 1,296,000 s
Total samples stored
10000 × 1,296,000
= 12,960,000,000
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.