Quelltexte — schnelle und skalierbare DBMS zur Speicherung und Verarbeitung von Daten in Form von Zeitreihen (bei denen eine Aufnahme eine Zeit und eine Reihe von Werten, die zu diesem Zeitpunkt gehören, z. B. durch periodische Abfragen des Sensorstatus oder das Sammeln von Metriken, bildet). Das Projekt konkurriert mit Lösungen wie , , , und . Der Code ist in Go geschrieben und unter der Apache 2.0-Lizenz.
Die Vorteile und Eigenschaften von VictoriaMetrics:
- Einfach zu bedienen. Es handelt sich um eine einzige ausführbare Datei mit minimalen Konfigurationen, die über die Kommandozeile beim Start übergeben werden. Alle Daten werden in einem Verzeichnis gespeichert, das beim Start über das Flag „-storageDataPath“ festgelegt wird;
- Unterstützung der Abfragesprache , die in der Überwachungssystem verwendet wird . Unterstützt werden Unterabfragen in PromQL sowie einige , wie der Ausdruck „offset“, Platzhalter innerhalb von „WIDTH“, die Operatoren „if“ und „default“, zusätzliche Funktionen und die Möglichkeit, Kommentare einzufügen;
- Die Möglichkeit, als , der mit Prometheus verbunden ist, zu fungieren; .
- Verfügbarkeit eines Rückfüllmodus zum Laden historischer Daten;
- Unterstützung verschiedener Datenübertragungsprotokolle, einschließlich , , und . VictoriaMetrics kann als transparente Alternative zu InfluxDB verwendet werden und arbeitet mit InfluxDB-kompatiblen Collectoren wie Telegraf zusammen.
- Hohe Leistung und niedriger Ressourcenverbrauch zu konkurrierenden Systemen. In einigen Tests übertrifft VictoriaMetrics InfluxDB und TimescaleDB bei Einfüge- und Abfrageoperationen um bis zu 20 Mal. Bei analytischen Abfragen kann die Leistungssteigerung im Vergleich zu relationalen Datenbanken wie PostgreSQL und MySQL zwischen dem 10- und 1000-fachen liegen.
- ist verfügbar. bei der Verarbeitung sehr großer Mengen einzigartiger zeitlicher Datenreihen. Bei der Verarbeitung von Millionen unterschiedlicher Datenreihen benötigt es bis zu 10 Mal weniger RAM als InfluxDB.
- Hohe Datenkompression im Festplattenspeicher. Im Vergleich zu TimescaleDB können in demselben Speicherumfang bis zu 70 Mal mehr Einträge untergebracht werden.
- Optimierungen für Speichersysteme mit hohen Latenzen und geringeren E/A-Operationen pro Sekunde (z. B. Festplatten und Cloud-Speicher von AWS, Google Cloud und Microsoft Azure);
- Ein einfaches Backup-System basierend auf ;
- Verfügbarkeit von Mitteln zum Schutz der Integrität des Speichers vor Datenbeschädigungen, beispielsweise bei einem plötzlichen Stromausfall (der Speicher ist in Form von );
- Implementierung in Go, was einen Kompromiss zwischen Leistung und Codekomplexität im Vergleich zu Rust und C++ bietet.
- Der Quellcode wird bereitgestellt , die horizontale Skalierung auf mehrere Server unterstützt und niedrige Betriebskosten zeigt. Es stehen Mittel für hohe Verfügbarkeit zur Verfügung.
Quelle: opennet.ru
