Skip to content
Home › SQL Comparisons › VictoriaMetrics vs Prometheus
Comparison · Time-Series & IoT

VictoriaMetrics vs Prometheus

Prometheus is a monitoring and alerting system: it scrapes metrics, stores them in a local single-node TSDB (15 days by default), evaluates PromQL rules and sends alerts to the Alertmanager. VictoriaMetrics is a Prometheus-compatible time-series database and set of components that can be used as Prometheus's long-term remote storage or in its place, with a cluster version, MetricsQL (backwards-compatible with PromQL) and 31 days of retention by default. Many teams run both: Prometheus or vmagent to collect, VictoriaMetrics to store.

Last verified November 2026. Versions checked: VictoriaMetrics 1.155.0, Prometheus 3.16.0. Licensing and features change; check the official sources for the latest details.

Quick verdict

Short answer

Our editorial view: Prometheus remains the reference implementation for scraping, PromQL rules and Alertmanager routing, and a single server is the simplest way to start monitoring with a few weeks of data. Choose VictoriaMetrics when you need longer retention, a horizontally scalable cluster, multi-tenancy, deduplication of samples from redundant collectors, or ingestion of other formats such as InfluxDB line protocol, without leaving PromQL dashboards behind. The two are not exclusive: Prometheus can remote_write to VictoriaMetrics, and vmagent and vmalert can replace Prometheus's scraping and rule evaluation.

How we know: This comparison is research-based: data models, collection, storage and retention, query languages, alerting, high availability, editions, licences and pricing follow the site's VictoriaMetrics guide, the InfluxDB vs Prometheus comparison and the Prometheus profile, which were checked against docs.victoriametrics.com, the VictoriaMetrics repository and Enterprise page, prometheus.io and the Prometheus repository; release numbers and the VictoriaMetrics Cloud billing documentation were rechecked on 7 November 2026. Licence terms are summarised and quoted, not legal advice. Configuration and query examples are adapted from the documentation, labelled illustrative and were not run here. VictoriaMetrics publishes comparisons with other systems in its documentation; we do not repeat them, and we have not run benchmarks.

This page is for engineers running Prometheus-style monitoring who are deciding whether to keep everything in Prometheus or add (or switch to) VictoriaMetrics, for servers and services and sometimes for building or plant metrics alongside them. For the difference between a monitoring system and a sensor historian, see InfluxDB vs Prometheus.

Prometheus, a Cloud Native Computing Foundation project under Apache 2.0, pulls metrics over HTTP from instrumented applications and exporters, stores them in a local TSDB, evaluates recording and alerting rules written in PromQL and sends alerts to a separate Alertmanager. Version 3.16.0 was released on 4 November 2026.

VictoriaMetrics is a time-series database written in Go, also under Apache 2.0 for both its single-node and cluster versions, with an Enterprise edition sold separately. Around the database the project ships vmagent (collection and remote write with on-disk buffering), vmalert (recording and alerting rules), vmauth (authenticating proxy) and vmbackup and vmrestore. The latest release in the changelog when checked was v1.155.0. See the VictoriaMetrics guide.

Side by side

AspectVictoriaMetricsPrometheus
Role Time-series database and components; Prometheus-compatible storage and query Monitoring and alerting system with its own local TSDB
Data model Metric name plus labels; millisecond timestamps, float values Metric name plus labels; float64 values or native histograms, millisecond timestamps
Collection Push (remote write, InfluxDB line protocol, Graphite, OpenTSDB, OpenTelemetry, CSV, JSON lines and more) or scraping via vmagent Pull by scraping; push only via Pushgateway, remote write receiver or OTLP receiver (receivers off by default)
Query language MetricsQL, backwards-compatible with PromQL PromQL
Rules and alerts vmalert evaluates rules and sends alerts to an Alertmanager Built-in rule evaluation plus the Alertmanager
Default retention 31 days (-retentionPeriod), minimum one day; one retention per instance in open source 15 days, or a size limit (--storage.tsdb.retention.time or .size)
Scaling Single-node (recommended below about a million data points per second) or cluster (vminsert, vmselect, vmstorage) Single server; local storage is not clustered or replicated; Thanos or Mimir for global views
High availability Cluster replication (-replicationFactor), or two single nodes fed by vmagent behind vmauth Run identical servers in parallel; Alertmanager HA mode
Deduplication -dedup.minScrapeInterval keeps one sample per series per interval Not built in; redundant servers keep separate copies
Multi-tenancy Cluster version: account and project IDs None built in
Licence Apache 2.0 (single-node and cluster); Enterprise commercial Apache 2.0; no paid edition

Key differences

Replacement, or long-term storage behind Prometheus

The two are often used together rather than chosen between. Prometheus keeps scraping and evaluating rules locally and streams samples from its write-ahead log to a remote endpoint with remote_write; if the endpoint is down, failures are retried without loss for up to about two hours. VictoriaMetrics accepts that stream and serves PromQL-compatible queries to Grafana, so dashboards point at VictoriaMetrics for history while Prometheus handles the last few hours. Prometheus's agent mode turns it into a scrape-and-forward agent with local querying, alerting and storage disabled.

# Illustrative configuration, not run here: prometheus.yml keys from the Prometheus
# documentation; the VictoriaMetrics single-node write path is from its documentation;
# the host name is a placeholder. Check both against the documentation for your versions.
remote_write:
  - url: "http://victoriametrics.monitoring.local:8428/api/v1/write"

Going further, vmagent can scrape Prometheus-format targets itself, buffer on local disk when the remote store is unreachable, and write to VictoriaMetrics, while vmalert evaluates recording and alerting rules and sends alerts to an Alertmanager. At that point Prometheus is no longer in the path, though its exporters, rule files and Alertmanager still are.

Storage, retention and scaling

Prometheus stores data in two-hour blocks compacted in the background, keeps 15 days unless told otherwise, and documents that local storage is not clustered or replicated and that NFS is not supported. Scaling means splitting targets across servers or adding Thanos or Grafana Mimir for long-term, global, highly available storage.

VictoriaMetrics writes immutable parts into monthly partitions, merges them in the background and keeps a per-partition inverted index (indexDB). Retention is one value per instance in open source (31 days by default), so different retentions mean separate instances routed through vmauth; per-label retention filters are an Enterprise feature. The cluster version splits ingestion (vminsert), storage (vmstorage, shared-nothing) and queries (vmselect), adds multi-tenancy and can return partial results if a storage node is down. The documentation itself recommends the single-node version below about a million data points per second because it is simpler to run.

Queries, deduplication and downsampling

PromQL works on both. MetricsQL is backwards-compatible with PromQL, so Grafana dashboards built for Prometheus keep working, and adds functions plus some intentional differences that the MetricsQL documentation lists; check your panels against that list before migrating. Deduplication is a VictoriaMetrics feature: with -dedup.minScrapeInterval set to the scrape interval, two redundant collectors writing the same series leave one sample per interval (the latest timestamp, then the larger value). With Prometheus, two HA servers each keep their own copy.

# Illustrative queries, not run here: valid PromQL and MetricsQL, adapted from the
# Prometheus and MetricsQL documentation.
rate(http_requests_total{job="api"}[5m])
avg_over_time(ahu_supply_air_temp_c{building="hq"}[15m])

Downsampling in Prometheus is done with recording rules that write lower-resolution series. In VictoriaMetrics open source the same approach uses vmalert recording rules into a long-retention instance; automatic downsampling of old data is an Enterprise feature.

Ingestion formats and out-of-order data

Prometheus is pull-first: the Pushgateway is recommended essentially only for service-level batch jobs, and the remote write and OTLP receivers are off by default because Prometheus may run without authentication. Its TSDB setting out_of_order_time_window defaults to 0s, so out-of-order samples are rejected unless you configure a window, which matters when a collector replays a buffer.

VictoriaMetrics is built to receive pushes in many formats: Prometheus remote write, InfluxDB line protocol over HTTP, TCP and UDP, Graphite, OpenTSDB, OpenTelemetry, DataDog and New Relic agents, JSON lines, CSV and a native format, alongside scraping through vmagent. InfluxDB line protocol fields become separate series named {measurement}_{field} and non-numeric field values are converted to 0, so text states must be encoded as numbers. That makes VictoriaMetrics a reasonable home for numeric building or plant metrics next to IT metrics, but not for text events or relational records; see the VictoriaMetrics guide.

Editions, security and operations

Prometheus has no paid edition. TLS and basic authentication are configured through a web configuration file (--web.config.file), which the documentation still marks as experimental; each server is standalone and does not depend on network storage, which is why the project positions it as the system you use during an outage.

VictoriaMetrics open source covers both single-node and cluster versions. Enterprise adds downsampling, multiple retentions per label filter, anomaly detection, backup automation, mTLS between cluster components and long-term support releases; Enterprise binaries are public but need a licence key, and the documentation permits evaluation in non-production setups with a trial licence and production use with an enterprise contract or permit. The documentation says all components must run in protected private networks, with requests from untrusted networks going through an authenticating proxy such as vmauth with TLS. Not legal advice: this summarises the licence and documentation; read them for your situation.

Pricing and licensing

Prometheus is free and open source under Apache 2.0, with no paid edition; your costs are servers, disks and the people who run them, plus Thanos or Mimir infrastructure if you add long-term storage. Several cloud providers sell managed Prometheus-compatible services; check each provider's pricing page, since we did not compare them here.

VictoriaMetrics open source (single-node and cluster) carries no licence fee. VictoriaMetrics Enterprise is priced through sales, with a trial licence for non-production evaluation; no prices are published. VictoriaMetrics Cloud, the managed service, is billed on fixed capacity tiers metered hourly plus storage and network egress, according to its billing documentation. The entry price differed between sources when checked (the billing documentation said about USD 190 a month for the smallest tiers, the product page "from USD 200 a month" for the first VictoriaMetrics tier), so check the cost preview in the console for your configuration.

Pricing checked on the vendors' official pages on 7 November 2026. Prices change; confirm before buying.

Where each one leads

VictoriaMetrics strengths

  • Prometheus-compatible storage that keeps PromQL dashboards working through MetricsQL
  • Cluster version with horizontal scaling, replication and multi-tenancy, all under Apache 2.0
  • Deduplication of samples from redundant collectors
  • Accepts many push formats, including InfluxDB line protocol and OpenTelemetry
  • vmagent buffers on local disk during network outages

Prometheus strengths

  • Reference implementation for scraping, PromQL and alerting rules
  • Alertmanager grouping, silencing, inhibition and routing
  • Standalone servers that keep working when other infrastructure fails
  • Large ecosystem of exporters and client libraries under the CNCF
  • No paid edition; everything is Apache 2.0

Limitations

VictoriaMetrics limitations

  • One retention per instance in open source; per-label retention and downsampling are Enterprise features
  • Float values only; non-numeric InfluxDB fields become 0
  • MetricsQL has intentional differences from PromQL to check on migration
  • Components must stay on private networks behind an authenticating proxy

Prometheus limitations

  • Local storage is not clustered or replicated; 15-day retention by default
  • Long-term or global views need Thanos, Mimir or another remote store
  • Out-of-order samples are rejected unless an out-of-order window is configured
  • TLS and basic authentication configuration is marked experimental
  • No built-in deduplication or multi-tenancy

When to choose each

Choose VictoriaMetrics if

  • You need months or years of metrics without running Thanos or Mimir
  • Ingestion has outgrown one Prometheus server, or you need multi-tenancy
  • Redundant collectors write the same series and you want one copy stored
  • Metrics arrive as line protocol, OpenTelemetry or other push formats

Choose Prometheus if

  • You are starting out and a few weeks of local data is enough
  • You want the reference PromQL and Alertmanager behaviour with no extra components
  • Each team or cluster runs its own small monitoring server
  • You plan to add a remote store later and want the standard scraper in front

When neither is right

Final recommendation

Bottom line

Our editorial view: Prometheus is the simplest correct start for metrics and alerting, and it stays the reference for scraping and rule semantics; its limits are a single, unreplicated local store with 15 days of retention by default. VictoriaMetrics is the more direct fit once you need longer retention, a cluster, multi-tenancy, deduplication or push formats beyond remote write, while keeping PromQL dashboards, with the caveat that some features (downsampling, per-label retention) are in Enterprise. A common path is to keep Prometheus or vmagent for collection, remote write to VictoriaMetrics for storage, and test MetricsQL against your existing dashboards before cutting over.

Frequently asked questions

Is VictoriaMetrics a drop-in replacement for Prometheus?

For storage and queries, largely: it accepts Prometheus remote write and scraping (through vmagent) and answers PromQL-compatible queries through MetricsQL, which is backwards-compatible with PromQL. Rule evaluation moves to vmalert, which sends alerts to an Alertmanager. MetricsQL has some intentional differences, so test your dashboards.

Can Prometheus write to VictoriaMetrics?

Yes. Configure remote_write in prometheus.yml with the VictoriaMetrics write URL. Prometheus keeps its local storage and rules, and VictoriaMetrics stores the copy for long-term queries.

How long do they keep data by default?

Prometheus keeps 15 days unless you set a retention time or size. VictoriaMetrics keeps 31 days unless you set -retentionPeriod, with a minimum of one day.

Is VictoriaMetrics open source?

Yes. Both the single-node and cluster versions are under the Apache License 2.0. An Enterprise edition with downsampling, per-label retention and other features is sold separately. Prometheus is also Apache 2.0 and has no paid edition. This is a summary, not legal advice.

Do I still need Thanos or Mimir with VictoriaMetrics?

Usually not for the same job. Thanos and Mimir add long-term, highly available storage to Prometheus; VictoriaMetrics fills that role itself, with a cluster version for scaling and replication.

Sources

Checked November 2026.

How we research comparisons: our editorial method.

More comparisons

Browse all SQL comparisons or the tools directory.