ProHoster > блог > Навіны інтэрнэту > Адкрыты код VictoriaMetrics, СКБД для часовых шэрагаў, сумяшчальнай з Prometheus
Адкрыты код VictoriaMetrics, СКБД для часовых шэрагаў, сумяшчальнай з Prometheus
Адкрыты зыходныя тэксты ВікторыяМетрыка - хуткай і якая маштабуецца СКБД для захоўвання і апрацоўкі дадзеных у форме часавага шэрагу (запіс утворыць час і набор адпаведных гэтаму часу значэнняў, напрыклад, атрыманых праз перыядычнае апытанне стану датчыкаў або збор метрык). Праект канкуруе з такімі рашэннямі, як InfluxDB, Часовая шкалаDB, Танос, Кара и Uber M3. Код напісаны на мове Go і распаўсюджваецца пад ліцэнзіяй Apache 2.0.
Перавагі і асаблівасці VictoriaMetrics:
Простая ў эксплуатацыі. Уяўляе з сябе адзін выкананы файл з мінімальнымі наладамі, якія перадаюцца праз камандны радок пры запуску. Усе дадзеныя захоўваюцца ў адным каталогу, зададзеным пры запуску пры дапамозе сцяга "-storageDataPath";
Падтрымка мовы запытаў PromQL, які выкарыстоўваецца ў сістэме маніторынгу Праметэй. Падтрымліваюцца подзапросы PromQL і некаторыя пашыраныя магчымасці, такія як выраз "offset", шаблоны ўнутры "WIDTH", аператары "if" і "default", дадатковыя функцыі і магчымасць уключэння каментароў;
Наяўнасць рэжыму зваротнага запаўнення для загрузкі гістарычных дадзеных;
Падтрымка розных пратаколаў перадачы даных, у тым ліку Prometheus API, Прыток, графітавых и 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++.
Прадстаўляюцца зыходныя коды кластарнай версій, якая падтрымлівае гарызантальнае маштабаванне на некалькі сервераў і дэманструе нізкія накладныя выдаткі. Ёсць сродкі забеспячэння высокай даступнасці.