ເປີດ ແຫຼ່ງຂໍ້ຄວາມ VictoriaMetrics — быстрой и масштабируемой СУБД для хранения и обработки данных в форме временного ряда (запись образует время и набор соответствующих этому времени значений, например, полученных через периодический опрос состояния датчиков или сбор метрик). Проект конкурирует с такими решениями, как InfluxDB, TimescaleDB, Thanos, Cortex и Uber M3. Код написан на языке Go и ແຈກຢາຍໂດຍ ອະນຸຍາດພາຍໃຕ້ Apache 2.0.
Преимущества и особенности VictoriaMetrics:
Проста в эксплуатации. Представляет из себя один исполняемый файл с минимальными настройками, передающимися через командную строку при запуске. Все данные хранятся в одном каталоге, заданном при запуске при помощи флага «-storageDataPath»;
Поддержка языка запросов PromQL, используемого в системе мониторинга Prometheus. Поддерживаются подзапросы PromQL и некоторые ຄວາມສາມາດຂະຫຍາຍ, такие как выражение «offset», шаблоны внутри «WIDTH», операторы «if» и «default», дополнительные функции и возможность включения комментариев;
Наличие режима обратного заполнения для загрузки исторических данных;
Поддержка различных протоколов передачи данных, включая Prometheus API, ການໄຫຼເຂົ້າ, Graphite и OpenTSDB. В том числе VictoriaMetrics может применяться в качестве прозрачной замены InfluxDB и может работать с совместимыми с InfluxDB коллекторами, такими как Telegraf;
Высокая производительность и низкое потребление ресурсов ປຽບທຽບ с конкурирующими системами. В некоторых тестах VictoriaMetrics опережает InfluxDB и TimescaleDB при выполнение операций вставки и выборки данных до 20 раз. При выполнении аналитических запросов выигрыш по сравнению с реляционными СУБД PostgreSQL и MySQL может составлять от 10 до 1000 раз.
ສາມາດໃຊ້ໄດ້ ໂອກາດ обработки очень большого числа уникальных временных рядов. При обработке миллионов разных временных рядов потребляет до 10 раз меньше ОЗУ, чем InfluxDB.
Высокая степень сжатия данных в дисковом хранилище. По сравнению с TimescaleDB может уместить в том же объёме хранилища до 70 раз больше записей;
Наличие оптимизаций для хранилищ с большими задержками и низким числом операций ввода/вывода в секунду (например, жёсткие диски и облачные хранилища AWS, Google Cloud и Microsoft Azure);
Простая система резервного копирования на основе ພາບຖ່າຍ;
Наличие средств для защиты целостности хранилища от повреждений данных, например, при экстренном отключении питания (хранилище имеет форму журнально-структурированного дерева со слиянием);
Реализация на языке Go, что обеспечивает компромисс между производительностью и сложностью кода по сравнению с Rust и C++.
Предоставляются исходные коды кластерной версий, которая поддерживает горизонтальное масштабирование на несколько серверов и демонстрирует низкие накладные расходы. Имеются средства обеспечения высокой доступности.