źródła — szybka i skalowalna baza danych do przechowywania i przetwarzania danych w postaci szeregów czasowych (zapis tworzy czas i zbiór wartości odpowiadających temu czasowi, na przykład uzyskanych w wyniku okresowego badania stanu czujników lub zbierania metryk). Projekt konkuruje z takimi rozwiązaniami jak , , , i . Kod napisany jest w języku Go i na licencji Apache 2.0.
Zalety i cechy VictoriaMetrics:
- Prosta w użyciu. Stanowi jeden plik wykonywalny z minimalnymi ustawieniami przekazywanymi przez wiersz poleceń podczas uruchamiania. Wszystkie dane są przechowywane w jednym katalogu, określonym podczas uruchomienia za pomocą flagi „-storageDataPath”;
- Wsparcie języka zapytań , używanego w systemie monitorowania . Wspierane są podzapytania PromQL i niektóre , takie jak wyrażenie „offset”, wzory w obrębie „WIDTH”, operatory „if” i „default”, dodatkowe funkcje oraz możliwość włączania komentarzy;
- Możliwość użycia jako , podłączonego do Prometheus i .
- Posiadanie trybu wypełniania wstecznego do ładowania danych historycznych;
- Wsparcie dla różnych protokołów transmisji danych, w tym , , i . VictoriaMetrics może być również stosowane jako przezroczysta alternatywa dla InfluxDB i może działać z zgodnymi kolektorami InfluxDB, takimi jak Telegraf;
- Wysoka wydajność i niskie zużycie zasobów do konkurencyjnych systemów. W niektórych testach VictoriaMetrics przewyższa InfluxDB i TimescaleDB w wykonywaniu operacji wstawiania i wyszukiwania danych do 20 razy. W przypadku zapytań analitycznych zysk w porównaniu do relacyjnych baz danych PostgreSQL i MySQL może wynosić od 10 do 1000 razy.
- Istnieje przetwarzanie bardzo dużej liczby unikalnych szeregów czasowych. Przetwarzając miliony różnych szeregów czasowych, zużywa do 10 razy mniej RAM-u niż InfluxDB.
- Wysoki stopień kompresji danych w magazynie dyskowym. W porównaniu do TimescaleDB może pomieścić w tej samej objętości magazynu do 70 razy więcej zapisów;
- Posiadanie optymalizacji dla magazynów o dużych opóźnieniach i niskiej liczbie operacji wejścia/wyjścia na sekundę (na przykład dysków twardych oraz chmur AWS, Google Cloud i Microsoft Azure);
- Prosty system tworzenia kopii zapasowych oparty na ;
- Dostępność środków do ochrony integralności magazynu przed uszkodzeniami danych, na przykład w przypadku awaryjnego wyłączenia zasilania (magazyn ma formę );
- Realizacja w języku Go zapewnia kompromis między wydajnością a złożonością kodu w porównaniu z Rust i C++.
- Udostępniane są kody źródłowe , która obsługuje poziome skalowanie na kilka serwerów i wykazuje niskie koszty. Dostępne są środki zapewniające wysoką dostępność.
Źródło: opennet.ru
