ProHoster > Blog > wiadomości internetowe > VictoriaMetrics, szereg czasowy DBMS kompatybilny z Prometheusem, jest oprogramowaniem typu open source
VictoriaMetrics, szereg czasowy DBMS kompatybilny z Prometheusem, jest oprogramowaniem typu open source
otwarty teksty źródłowe VictoriaMetrics — szybki i skalowalny system DBMS służący do przechowywania i przetwarzania danych w postaci szeregów czasowych (zapis tworzy czas i zbiór wartości odpowiadający temu czasowi, uzyskiwany np. poprzez okresowe odpytywanie stanu czujników lub zbieranie metryka). Projekt konkuruje z takimi rozwiązaniami jak NapływDB, Baza danych skali czasu, Thanos, Kora и Ubera M3. Kod jest napisany w Go i dystrybuowane przez na licencji Apache 2.0.
Zalety i cechy VictoriaMetrics:
Łatwy w użyciu. Jest to pojedynczy plik wykonywalny z minimalnymi ustawieniami przekazywanymi z wiersza poleceń podczas uruchamiania. Wszystkie dane są przechowywane w jednym katalogu, określonym przy uruchomieniu za pomocą flagi „-storageDataPath”;
Obsługa języka zapytań PromQL, stosowane w systemie monitoringu Prometheus. Obsługiwane są podzapytania PromQL i niektóre rozszerzone możliwości, takie jak wyrażenie „offset”, wzorce w instrukcjach „WIDTH”, „if” i „default”, dodatkowe funkcje i możliwość dołączania komentarzy;
Dostępność trybu uzupełniania do ładowania danych historycznych;
Obsługuje różne protokoły przesyłania danych, w tym API Prometeusza, Napływ, grafit и OtwórzTSDB. VictoriaMetrics może być używany jako przezroczysty zamiennik InfluxDB i może współpracować z kolektorami kompatybilnymi z InfluxDB, takimi jak Telegraf;
Wysoka wydajność i niskie zużycie zasobów w porównaniu z konkurencyjnymi systemami. W niektórych testach VictoriaMetrics przewyższa InfluxDB i TimescaleDB nawet 20-krotnie podczas wykonywania operacji wstawiania i pobierania. Podczas wykonywania zapytań analitycznych zysk w porównaniu z relacyjnymi bazami danych PostgreSQL i MySQL może wynosić od 10 do 1000 razy.
Jest dostępny okazja przetwarzanie bardzo dużej liczby unikalnych szeregów czasowych. Podczas przetwarzania milionów różnych szeregów czasowych zużywa do 10 razy mniej pamięci RAM niż InfluxDB.
Wysoki stopień kompresji danych w pamięci dyskowej. W porównaniu do TimescaleDB może pomieścić do 70 razy więcej rekordów w tej samej ilości miejsca;
Dostępność optymalizacji pamięci masowej o dużych opóźnieniach i małej liczbie operacji wejścia/wyjścia na sekundę (na przykład dyski twarde i pamięć masowa w chmurze AWS, Google Cloud i Microsoft Azure);
Prosty system tworzenia kopii zapasowych oparty migawki;
Dostępność środków zabezpieczających integralność magazynu przed uszkodzeniem danych, np. w przypadku awaryjnej przerwy w dostawie prądu (pamięć ma postać Drzewo o strukturze dziennika z funkcją scalania);
Implementacja w języku Go, która zapewnia kompromis pomiędzy wydajnością i złożonością kodu w porównaniu do Rusta i C++.
Dostarczono kody źródłowe wersje klastrów, który obsługuje skalowanie poziome na wielu serwerach i charakteryzuje się niskim obciążeniem. Dostępne są funkcje wysokiej dostępności.