teksty źródłowe — 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 , , , и . Kod jest napisany w Go i 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ń , stosowane w systemie monitoringu . Obsługiwane są podzapytania PromQL i niektóre , takie jak wyrażenie „offset”, wzorce w instrukcjach „WIDTH”, „if” i „default”, dodatkowe funkcje i możliwość dołączania komentarzy;
- Można używać jako związany z Prometeuszem i .
- Dostępność trybu uzupełniania do ładowania danych historycznych;
- Obsługuje różne protokoły przesyłania danych, w tym , , и . 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 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 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 ;
- Dostępność środków zabezpieczających integralność magazynu przed uszkodzeniem danych, np. w przypadku awaryjnej przerwy w dostawie prądu (pamięć ma postać );
- 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 , który obsługuje skalowanie poziome na wielu serwerach i charakteryzuje się niskim obciążeniem. Dostępne są funkcje wysokiej dostępności.
Źródło: opennet.ru
