Выпуск VictoriaMetrics 1.94, СУБД для построения систем мониторинга

Доступен выпуск платформы VictoriaMetrics 1.94.0, предоставляющей СУБД для хранения и обработки данных в форме временного ряда (запись образует время и набор соответствующих этому времени значений, например, полученных через периодический опрос состояния датчиков или сбор метрик), оптимизированную для решения задач мониторинга. Проект конкурирует с такими решениями, как InfluxDB, TimescaleDB, Thanos, Cortex и Uber M3, и отличается более высокой производительностью. СУБД может использоваться в качестве долговременного хранилища данных, подключённого к Prometheus и Grafana, а также в форме прозрачной замены InfluxDB. Код написан на языке Go и распространяется под лицензией Apache 2.0.

В тестах производительности VictoriaMetrics опережает InfluxDB и TimescaleDB при выполнение операций вставки и выборки данных до 20 раз, потребляя при этом в 10 раз меньше ОЗУ, чем InfluxDB и в 7 раз меньше, чем Prometheus, Thanos и Cortex при обработке миллионов уникальных временных рядов. Хранение данных в сжатом виде позволяет уместить в том же объёме хранилища в 7 раз больше записей по сравнению с Prometheus, Thanos и Cortex, и в 70 раз – по сравнению с TimescaleDB. Имеются специфичные оптимизации для хранилищ с большими задержками и низкой интенсивностью операций ввода/вывода (например, жёсткие диски и облачные хранилища AWS, Google Cloud и Microsoft Azure).

СУБД оформлена в виде одного исполняемого файла с минимальными настройками, передающимися через командную строку при запуске. Все данные хранятся в одном каталоге, заданном при запуске при помощи флага “-storageDataPath”. В качестве языка запросов используется MetricsQL, расширенный вариант языка PromQL, применяемого в системе мониторинга Prometheus. Кроме непрерывной обработки поступающих данных в VictoriaMetrics также предусмотрена возможность загрузки ранее собранных исторических данных.

Предоставляются средства для защиты целостности хранилища от повреждений данных, например, при экстренном отключении питания (хранилище имеет форму журнально-структурированного дерева со слиянием), а также простая система резервного копирования на основе снапшотов. Возможно объединение узлов VictoriaMetrics в горизонталдьно масштабируемый кластер, поддерживающий механизмы обеспечения высокой доступности.

Среди добавленных в новом выпуске новшеств:

  • В MetricsQL для наглядности разрешено разделение чисел подчёркиванием (например, можно указывать 1_234_567_890 и 1.234_567_890 вместо 1234567890 и 1.234567890).
  • В vmbackup добавлена поддержка оставления на сервере копий созданных бэкапов.
  • В интерфейсе vmui добавлена опция для показа 25 последних запросов. На страницу “Explore cardinality” добавлена поддержка экспорта данных в Prometheus. Добавлена кнопка для автоматического форматирования запросов PromQL/MetricsQL. Повышена наглядность диаграмм. В localStorage добавлено хранилище истории запросов.
  • В vmagent расширены возможности управления узлами кластера, улучшена обработка ошибок и снижена нагрузка на управляющую панель Kubernetes при начальном обнаружении сервиса.
  • В кластере с 60 до 3 секунд сокращено максимально допустимое время восстановления при выполнении операций vmselect и vminsert, в ситуации, когда недоступны некоторые узлы vmstorage.

Отдельно можно отметить проведение сегодня в 19 часов по московскому времени виртуальной конференции, на которой разработчики VictoriaMetrics познакомят с новыми возможностями проекта и планами по развитию, расскажут об управлении платформой и выявлении аномалий, а также поделятся сведениями о развитии открытой СУБД для ведения логов VictoriaLogs. В завершении на мероприятии будет секция ответов на вопросы.



Release. Ссылка here.