Multi-year metric history without multi-year block storage bills
Provisioned block storage per instance dropped by roughly an order of magnitude, and year-range capacity queries that used to time out now return in seconds against downsampled data. Retention is now …
Overview
A healthcare analytics provider needed long capacity-planning history and multi-year retention for certain operational metrics, but was achieving it by attaching very large block volumes to Prometheus. AceMQ designed an object-storage-backed architecture with downsampling instead.
Challenge
Local retention was set to well over a year, which meant enormous provisioned volumes per instance, slow compaction, and painful instance moves. Queries over long ranges timed out because they scanned raw-resolution samples across the whole window. There was also no real durability story — the retention lived on volumes attached to single instances, so an instance loss meant losing history that the business had committed to keeping.
Environment
Prometheus on Kubernetes across multiple AWS accounts, object storage available, regulated retention obligations on a subset of metrics.
Approach
We separated the two jobs Prometheus was being asked to do: recent high-resolution data for alerting, and long-range history for planning and audit. Prometheus keeps a short local window; blocks ship to object storage where a downsampling compactor produces coarser resolutions for long-range queries. The retention obligation is then enforced by object lifecycle policy rather than instance configuration.
Solution
- 1Local Prometheus retention shortened to a small window sized for alerting and immediate debugging only
- 2Block shipping to object storage with a compactor producing five-minute and one-hour downsampled resolutions
- 3Query layer configured to select the appropriate resolution automatically based on the requested range
- 4Retention obligations enforced through object lifecycle rules per bucket prefix, auditable independently of Prometheus
- 5Deduplication configured across highly available Prometheus pairs so long-range queries return one coherent series
- 6Cost model comparing provisioned block storage against object storage plus downsampling at the customer's real data volumes
Outcome
Provisioned block storage per instance dropped by roughly an order of magnitude, and year-range capacity queries that used to time out now return in seconds against downsampled data. Retention is now enforceable and auditable without depending on any individual instance surviving.
Technologies
Related Use Cases
Prometheus Scrape and Federation Architecture Assessment
Assessment of a Prometheus federation topology that had grown past its limits, causing gaps and duplicated data across sites.
Prometheus Restart and WAL Replay Support
Ongoing support for large Prometheus instances where restarts caused extended monitoring blind spots due to slow write-ahead log replay.
Need Prometheus Architecture Guidance?
AceMQ's senior Prometheus engineers have handled this exact type of engagement before. Whether you need architectural guidance, hands-on remediation, or an ongoing managed partnership, we're ready to help.