3 ms·
VictoriaMetrics core developer here. VictoriaMetrics can be used as a drop-in replacement for Prometheus in most cases. It has the following advantages over Pr
by valyala 4y ago
VictoriaMetrics core developer here.
VictoriaMetrics can be used as a drop-in replacement for Prometheus in most cases. It has the following advantages over Prometheus:
- Better data compression, so more data can be stored to the same persistent disk.
- Lower memory usage, so it can process bigger workloads than Prometheus.
- Better performance for heavy queries, which need to scan big number of raw samples.
- Better scalability - VictoriaMetrics scales both vertically (e.g. it runs faster and can handle bigger workloads on machines with bigger number of CPU cores and RAM) and horizontally (e.g. the performance and the capacity of the cluster version of VictoriaMetrics scales with the number of nodes in the cluster).
- MetricsQL - better query language than PromQL [1]. It provides additional functionality on top of PromQL .
- While VictoriaMetrics supports discovering and scraping Prometheus-compatible targets [2], it also accepts metrics via popular data ingestion protocols such as Pushgateway protocol, Influx line protocol, Graphite, DataDog, etc. [3]
[1] https://docs.victoriametrics.com/MetricsQL.html https://docs.victoriametrics.com/MetricsQL.html
[2] https://docs.victoriametrics.com/Single-server-VictoriaMetrics.html#how-to-scrape-prometheus-exporters-such-as-node-exporter https://docs.victoriametrics.com/Single-server-VictoriaMetri...
[3] https://docs.victoriametrics.com/Single-server-VictoriaMetrics.html#how-to-import-time-series-data https://docs.victoriametrics.com/Single-server-VictoriaMetri...
Of course, VictoriaMetrics has some disadvantages comparing to Prometheus. For example, it is written from scratch and doesn't use any source code from Prometheus. While this allows developing new features and performance optimizations at much faster pace (e.g. there is no need to wait for review/approval in the Prometheus codebase), this also may bring some incompatibilities in edge cases. There are other disadvantages, but I'm, as a core dev of VictoriaMetrics, isn't the best person to name them :)