Відкрито код VictoriaMetrics, СУБД для тимчасових рядів, сумісної з Prometheus

Відкриті вихідні тексти ВікторіяМетрикс — швидкої та масштабованої СУБД для зберігання та обробки даних у формі тимчасового ряду (запис утворює час та набір відповідних цьому часу значень, наприклад, отриманих через періодичне опитування стану датчиків або збирання метрик). Проект конкурує з такими рішеннями, як InfluxDB, Часовий шкалаDB, Танос, Кора и Uber M3. Код написаний мовою Go та поширюється під ліцензією Apache 2.0

Переваги та особливості VictoriaMetrics:

  • Проста в експлуатації. Представляє один виконуваний файл з мінімальними налаштуваннями, що передаються через командний рядок при запуску. Всі дані зберігаються в одному каталозі, заданому під час запуску за допомогою прапора "-storageDataPath";
  • Підтримка мови запитів PromQL, що використовується в системі моніторингу Прометей. Підтримуються підзапити PromQL та деякі розширені можливості, такі як вираз "offset", шаблони всередині "WIDTH", оператори "if" і "default", додаткові функції та можливість включення коментарів;
  • Можливість використання як довготривалого сховища даних, підключеного до Prometheus та Grafana.
  • наявність режиму зворотного заповнення для завантаження історичних даних;
  • Підтримка різних протоколів передачі даних, включаючи Prometheus API, Приплив, графітовий и 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

Додати коментар або відгук