VictoriaMetrics, a Prometheus-compatible time-series database engine, is open source

open source code VictoriaMetrics - a fast and scalable DBMS for storing and processing data in the form of a time series (a record forms a time and a set of values ​​corresponding to this time, for example, obtained through a periodic poll of the status of sensors or the collection of metrics). The project competes with solutions such as InfluxDB, TimescaleDB, Thanos, Cortex и Uber M3. The code is written in Go and spreads licensed under Apache 2.0.

Advantages and features of VictoriaMetrics:

  • Easy to operate. It is a single executable file with minimal settings passed through the command line at startup. All data is stored in one directory specified at startup using the "-storageDataPath" flag;
  • Query language support PromQLused in the monitoring system Prometheus. Supports PromQL subqueries and some extended capabilities, such as the "offset" expression, patterns within "WIDTH", "if" and "default" statements, additional features, and the ability to include comments;
  • Possibility of use as long-term data storageconnected to Prometheus and grafana.
  • Availability of backfill mode for loading historical data;
  • Support for various communication protocols, including Prometheus API, influence, Graphite и OpenTSDB. Among other things, VictoriaMetrics can be used as a transparent replacement for InfluxDB and can work with InfluxDB compatible collectors such as Telegraf;
  • High performance and low resource consumption compared with competing systems. In some tests, VictoriaMetrics outperforms InfluxDB and TimescaleDB on inserts and fetches up to 20 times. When executing analytical queries, the gain compared to the relational DBMS PostgreSQL and MySQL can be from 10 to 1000 times.

    VictoriaMetrics, a Prometheus-compatible time-series database engine, is open source

    VictoriaMetrics, a Prometheus-compatible time-series database engine, is open source

    VictoriaMetrics, a Prometheus-compatible time-series database engine, is open source

  • There is opportunity processing a very large number of unique time series. When processing millions of different time series, it consumes up to 10 times less RAM than InfluxDB.
  • High degree of data compression in disk storage. Compared to TimescaleDB, it can fit up to 70 times more records in the same amount of storage;
  • Availability of optimizations for storage with high latency and low I / O operations per second (for example, hard drives and cloud storage AWS, Google Cloud and Microsoft Azure);
  • Simple backup system based snapshots;
  • Availability of means to protect the integrity of the storage from data corruption, for example, during an emergency power outage (the storage has the form merge log-structured tree);
  • Implemented in Go, which provides a compromise between performance and code complexity compared to Rust and C++.
  • Source codes provided cluster versions, which supports horizontal scaling across multiple servers and exhibits low overhead. There are means of ensuring high availability.

Source: opennet.ru

Add a comment