Estimate Prometheus disk storage needs from sample ingestion rate and retention.
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.
storage = ingestionRate × retentionDays × 86400 × bytesPerSample × replicationFactor
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).
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.
Yes — doubling the scrape interval roughly halves the ingestion rate and therefore storage, at the cost of coarser time resolution between data points.
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.