BlogPrometheus

Prometheus Alternatives: When to Switch and When to Add Storage

Scott Sternloff

By Scott Sternloff, Senior Enterprise Architect

LinkedIn · Updated · 6 min read

Prometheus Alternatives: When to Switch and When to Add Storage
On this page

Most teams looking for a Prometheus alternative do not need to replace Prometheus. They need storage behind it. Keep Prometheus for scraping, rules and alerting, and move to Thanos, Mimir, VictoriaMetrics or a cloud managed service only when local disk, one query view or loss of a server becomes the problem. As of 4 November 2026 the current Prometheus release is 3.15.1, and its supported LTS line is 3.13, fixed to 31 July 2027.

The question usually arrives after an out-of-memory kill or a retention complaint. If that is your week, AceMQ's Prometheus consulting and support starts with a cardinality and retention review, which can remove the pressure that made a replacement look necessary. This article sets out the options and the signs that point to each.

Prometheus alternatives fall into three groups. Storage layers such as Thanos, Mimir and Cortex keep Prometheus and extend it. A different time-series database, such as VictoriaMetrics, replaces the storage engine. Managed services run the storage and query for you. Platforms that add logs and traces on top of Prometheus metrics, such as Grafana Cloud or a vendor observability platform, are a fourth category with a different buying decision.

Why people switch: what one Prometheus server can and cannot do

Prometheus writes samples to local disk. Its documentation says local storage is not clustered or replicated, so it behaves like a single-node database: it does not survive a lost disk or node by itself. Retention defaults to 15 days, set by time or size flags, and the size limit should sit at 80 to 85 percent of the disk to leave room for compaction.

The same page gives the sizing formula: retention in seconds, times samples ingested per second, times bytes per sample, with an average of 1 to 2 bytes per sample. Run that arithmetic first. A server that holds the history you need on one disk is not a candidate for replacement, and the work is usually in the labels, which is the main driver of memory.

Thanos: keep Prometheus, add object storage

Thanos describes itself as an open source, highly available Prometheus setup with long-term storage. It is a CNCF incubating project under Apache 2.0, and its latest GitHub release at the time of writing is v0.42.5. It adds components next to your servers: a sidecar, a store gateway, a querier, a compactor, a ruler and a receiver. Object storage is optional in its own getting-started page, but long retention is the reason most people install it.

Thanos fits when you run a Prometheus per cluster and want one query across them with history kept in object storage. You keep your existing servers and rules, which makes it the smallest move. The cost is more moving parts to operate: object storage, a compactor and the queriers.

Mimir and Cortex: centralise the write path

Grafana Mimir is a horizontally scalable, multi-tenant long-term store for Prometheus and OpenTelemetry metrics. It is licensed AGPL v3, and the latest release at the time of writing is 3.2.4. Prometheus servers send samples to it by remote write, and each tenant's series are stored in their own TSDB, with a tenant ID on every request. It needs one of Amazon S3, Google Cloud Storage, Azure Storage or OpenStack Swift for blocks. In version 3 it offers two architectures: an ingest storage design that uses Kafka, which its documentation prefers, and the classic design with stateful ingesters.

Cortex is the older project in the same space. It is Apache 2.0 and CNCF incubating, with a v1.21.1 release in June 2026. Choose Mimir or Cortex when write volume is high enough that you want it centralised and multi-tenant. Remember that moving to either does not reduce what your Prometheus servers pay for high cardinality; it adds a second place that pays for it.

VictoriaMetrics: a different engine

VictoriaMetrics is not an add-on to Prometheus but another time series database. Its single-node and cluster versions are under the Apache License 2.0, and its documentation lists additional enterprise features for customers with commercial support. It accepts the Prometheus remote write protocol, can scrape Prometheus-compatible targets from a prometheus.yml, supports the Prometheus querying API, and can serve as a data source in Grafana. Its query language is MetricsQL, which the project describes as PromQL-like with extra functions, so queries are similar, not identical. Default retention is one month, set with -retentionPeriod. The cluster version is split into vminsert, vmselect and vmstorage.

It suits teams that want a single binary to run or want to replace the storage engine as well as the retention layer. Check your alert and recording rules against MetricsQL before committing, because that is where a switch costs time.

Managed Prometheus services

Amazon Managed Service for Prometheus is described by AWS as highly available, secure and managed monitoring for containerized systems, and it can query metrics from self-managed Kubernetes clusters and other environments. Azure Monitor managed service for Prometheus is a fully managed service with PromQL support, 18 months of retention at no storage cost and remote write from self-managed Prometheus. Both take storage and query off your on-call. You still own what is scraped, the recording rules and the alert rules, and both price on ingestion: AWS by samples ingested, Azure by ingestion and query.

Stay with Prometheus if, and when to switch

  • Stay on one Prometheus when series count and retention fit one server and a lost disk is survivable.
  • Add Thanos when you run several Prometheus servers and want one query view with history in object storage.
  • Add Mimir or Cortex when you want multi-tenant, centralised ingestion at high write volume.
  • Move to VictoriaMetrics when you want a different storage engine and have checked your rules against MetricsQL.
  • Use a managed service when you want storage and query off your on-call and accept billing by ingest.

Grafana dashboards and alert rules written in PromQL carry over to Thanos, Mimir and the managed Prometheus services, because they speak the same query language; infrastructure metrics keep their labels. Whichever you pick, set a label policy first. The open source observability stack page shows where this choice sits among collection, logs and traces. If Prometheus is already running badly, 24/7 Prometheus support comes first, and the longer-term options come later.

Sources

  • Prometheus documentation, storage (prometheus.io/docs/prometheus/latest/storage/), release cycle (prometheus.io/docs/introduction/release-cycle/) and instrumentation (prometheus.io/docs/practices/instrumentation/).
  • Thanos, thanos.io, and the thanos-io/thanos GitHub releases and getting-started page.
  • Grafana Mimir documentation, grafana.com/docs/mimir/latest/, and the grafana/mimir GitHub releases.
  • Cortex, the cortexproject/cortex GitHub releases, and the CNCF project list, cncf.io/projects/.
  • VictoriaMetrics documentation, docs.victoriametrics.com/victoriametrics/.
  • AWS, Amazon Managed Service for Prometheus, aws.amazon.com/prometheus/ and aws.amazon.com/prometheus/pricing/.
  • Microsoft Learn, Azure Monitor managed service for Prometheus overview, learn.microsoft.com/en-us/azure/azure-monitor/essentials/prometheus-metrics-overview.
  • All read 4 November 2026.

Frequently Asked Questions

Is Thanos a replacement for Prometheus?

No. Thanos runs alongside Prometheus. Its sidecar, store gateway, querier and compactor add long-term storage and a global query view, while Prometheus still scrapes targets and evaluates rules.

Is VictoriaMetrics a drop-in replacement for Prometheus?

Mostly for ingestion and dashboards: it accepts Prometheus remote write, can scrape the same targets and works as a Grafana data source. Its query language, MetricsQL, is PromQL-like but not identical, so check alert and recording rules before switching.

How do I reduce Prometheus cardinality without migrating?

Set a label policy, then drop or relabel the offending labels at scrape time. The Prometheus documentation keeps a metric's cardinality below 10 as normal, suggests looking for alternatives above 100, and shows a per-user label turning about 100,000 series into double-digit millions. Fix the labels first; storage changes do not reduce what the servers hold in memory.

When is one Prometheus server not enough?

When the history you need will not fit on local disk, when you need one query across several servers, or when losing a server must not lose the metrics. The Prometheus documentation says local storage is not clustered or replicated.

Scott Sternloff

Author

Scott SternloffSenior Enterprise Architect

Senior Enterprise Architect at AceMQ. Writes the technical coverage here: RabbitMQ, Kafka and Redis architecture, clustering and migrations.

Talk to an engineer

Need a hand with Prometheus?

Senior engineers who run it in production. Get a quote or a free consultation, no sales pitch.

Guides, comparisons and research

Go deeper on Observability

Free Consultation

Get Expert Eyes on Your Prometheus Environment

Whether you're troubleshooting a production incident, planning a migration, or want a second opinion on your architecture — our team is ready. No pitch, just answers.

Email Us