Открыт код VictoriaMetrics, СУБД для временных рядов, совместимой с Prometheus

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

Преимущества и особенности VictoriaMetrics:

  • Проста в эксплуатации. Представляет из себя один исполняемый файл с минимальными настройками, передающимися через командную строку при запуске. Все данные хранятся в одном каталоге, заданном при запуске при помощи флага «-storageDataPath»;
  • Поддержка языка запросов PromQL, используемого в системе мониторинга Prometheus. Поддерживаются подзапросы PromQL и некоторые расширенные возможности, такие как выражение «offset», шаблоны внутри «WIDTH», операторы «if» и «default», дополнительные функции и возможность включения комментариев;
  • Возможность использования в качестве долговременного хранилища данных, подключенного к Prometheus и Grafana.
  • Наличие режима обратного заполнения для загрузки исторических данных;
  • Поддержка различных протоколов передачи данных, включая Prometheus API, Influx, Graphite и OpenTSDB. В том числе VictoriaMetrics может применяться в качестве прозрачной замены InfluxDB и может работать с совместимыми с InfluxDB коллекторами, такими как Telegraf;
  • Высокая производительность и низкое потребление ресурсов по сравнению с конкурирующими системами. В некоторых тестах VictoriaMetrics опережает InfluxDB и TimescaleDB при выполнение операций вставки и выборки данных до 20 раз. При выполнении аналитических запросов выигрыш по сравнению с реляционными СУБД PostgreSQL и MySQL может составлять от 10 до 1000 раз.

    Открыт код VictoriaMetrics, СУБД для временных рядов, совместимой с Prometheus

    Открыт код VictoriaMetrics, СУБД для временных рядов, совместимой с Prometheus

    Открыт код VictoriaMetrics, СУБД для временных рядов, совместимой с Prometheus

  • Имеется возможность обработки очень большого числа уникальных временных рядов. При обработке миллионов разных временных рядов потребляет до 10 раз меньше ОЗУ, чем InfluxDB.
  • Высокая степень сжатия данных в дисковом хранилище. По сравнению с TimescaleDB может уместить в том же объёме хранилища до 70 раз больше записей;
  • Наличие оптимизаций для хранилищ с большими задержками и низким числом операций ввода/вывода в секунду (например, жёсткие диски и облачные хранилища AWS, Google Cloud и Microsoft Azure);
  • Простая система резервного копирования на основе снапшотов;
  • Наличие средств для защиты целостности хранилища от повреждений данных, например, при экстренном отключении питания (хранилище имеет форму журнально-структурированного дерева со слиянием);
  • Реализация на языке Go, что обеспечивает компромисс между производительностью и сложностью кода по сравнению с Rust и C++.
  • Предоставляются исходные коды кластерной версий, которая поддерживает горизонтальное масштабирование на несколько серверов и демонстрирует низкие накладные расходы. Имеются средства обеспечения высокой доступности.

Источник: opennet.ru

Добавить комментарий