Prometheus Storage Calculator
Estimate Prometheus disk storage needs from sample ingestion rate and retention.
About Prometheus Storage Calculator
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
Worked example
With the default values below, Prometheus Storage Calculator returns Total Storage Needed of 18.10. Change any input above and every figure here is recalculated in your browser.
Inputs used
- Retention Periodaccepts 1–3,650 days
- 15 days
- Ingestion Rateaccepts 1–100,000,000 samples/sec
- 10,000 samples/sec
- Bytes per Sampleaccepts 0.1–16 bytes
- 1.5 bytes
- Replication Factoraccepts 1–5 ×
- 1 ×
Results
- Total Storage Needed
- 18.10 GiB
- Total Storage Needed
- 0.018 TiB
- Daily Storage Growth
- 1.21 GiB/day
- Total Samples Retained
- 12,960,000,000
Step by step
- 1Total seconds in retention window= 1,296,000 s
- 2Total samples stored= 12,960,000,000
- 3Storage: samples × bytes/sample × replicas= 18.10 GiB
Assumptions and limits
- The result is derived only from the 4 inputs listed above. Anything not among them is not part of the calculation.
- In particular, this calculator does not take inflation, tax or fees or charges into account.
- Figures are rounded for display to 3 decimal places, so totals built from several rounded parts can differ slightly from the unrounded arithmetic.
How these calculators are built and tested is described on the Methodology page. If a figure looks wrong, please report it.
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.
