изходен код — бърза и мащабируема СУБД за съхранение и обработка на данни под формата на времеви ред (записът образува време и набор от стойности, съответстващи на това време, например, получени чрез периодичен преглед на състоянието на сензорите или събиране на метрики). Проектът състезава с решения като , , , и . Кодът е написан на езика Go и е под лицензия Apache 2.0.
Предимства и характеристики на VictoriaMetrics:
- Лесен за използване. Представлява един изпълним файл с минимални настройки, предавани през командния ред при стартиране. Всички данни се съхраняват в една директория, зададена при стартиране с флага "-storageDataPath";
- Поддръжка на език за заявки , използван в системата за мониторинг . Поддържат се подзаявки PromQL и някои , като изрази "offset", шаблони в "WIDTH", оператори "if" и "default", допълнителни функции и възможност за включване на коментари;
- Възможност за използване като , свързано с Prometheus и .
- Наличие на режим за обратно запълване за зареждане на исторически данни;
- Поддръжка на различни протоколи за предаване на данни, включително , , и . Включително VictoriaMetrics може да се използва като прозрачен заместител на InfluxDB и може да работи с колектори, съвместими с InfluxDB, като Telegraf;
- Висока производителност и ниска консумация на ресурси с конкуриращите системи. В някои тестове VictoriaMetrics изпреварва InfluxDB и TimescaleDB при извършване на операции по вмъкване и избор на данни до 20 пъти. При изпълнение на аналитични заявки, предимството в сравнение с релационните СУБД PostgreSQL и MySQL може да варира от 10 до 1000 пъти.
- съществува обработващи много голям брой уникални времеви редове. При обработка на милиони различни времеви редове консумира до 10 пъти по-малко RAM от InfluxDB.
- Висока степен на компресия на данните в дисковото хранилище. В сравнение с TimescaleDB може да побере до 70 пъти повече записи в същия обем хранилище;
- Наличие на оптимизации за хранилища с големи закъснения и нисък брой операции за вход/изход на секунда (например, твърди дискове и облачни хранилища AWS, Google Cloud и Microsoft Azure);
- Лесна система за резервно копиране на базата ;
- Наличие средства за защита целостността на хранилището от повреди на данните, например, при спешно прекъсване на захранването (хранилището има форма );
- Реализация на Go езика, което осигурява компромис между производителност и сложност на кода в сравнение с Rust и C++.
- Предоставят се изходни кодове , която поддържа хоризонтално мащабиране на няколко сървъра и показва ниски разходи. Налични са средства за осигуряване на висока наличност.
Източник: opennet.ru
