textos originales — una base de datos rápida y escalable para almacenar y procesar datos en forma de series temporales (donde un registro crea tiempo y un conjunto de valores correspondientes a ese tiempo, como los obtenidos a través de encuestas periódicas sobre el estado de los sensores o la recopilación de métricas). El proyecto compite con soluciones como , , , y . El código está escrito en Go y bajo la licencia Apache 2.0.
Ventajas y características de VictoriaMetrics:
- Es fácil de operar. Se presenta como un solo archivo ejecutable con configuraciones mínimas que se transmiten a través de la línea de comandos al iniciarlo. Todos los datos se almacenan en un directorio único, que se define al iniciar con la bandera «-storageDataPath»;
- Soporte para el lenguaje de consulta , utilizado en el sistema de monitoreo . Se admiten subconsultas PromQL y algunas , como la expresión «offset», patrones dentro de «WIDTH», operadores «if» y «default», funciones adicionales y la capacidad de incluir comentarios;
- Posibilidad de utilizarse como , conectado a Prometheus y .
- Disponibilidad de modo de retroalimentación para cargar datos históricos;
- Soporte para varios protocolos de transmisión de datos, incluyendo , , y . VictoriaMetrics también puede usarse como un reemplazo transparente de InfluxDB y puede trabajar con recolectores compatibles con InfluxDB, como Telegraf;
- Alto rendimiento y bajo consumo de recursos con sistemas competidores. En algunas pruebas, VictoriaMetrics supera a InfluxDB y TimescaleDB en la realización de operaciones de inserción y selección de datos hasta 20 veces. En la ejecución de consultas analíticas, la ventaja en comparación con las bases de datos relacionales PostgreSQL y MySQL puede ser de 10 a 1000 veces.
- Hay procesamiento de un número muy grande de series temporales únicas. Al procesar millones de series temporales diferentes, consume hasta 10 veces menos RAM que InfluxDB.
- Alto grado de compresión de datos en el almacenamiento en disco. En comparación con TimescaleDB, puede contener hasta 70 veces más registros en el mismo volumen de almacenamiento;
- Disponibilidad de optimizaciones para almacenamiento con altas latencias y bajo número de operaciones de entrada/salida por segundo (por ejemplo, discos duros y almacenamiento en la nube de AWS, Google Cloud y Microsoft Azure);
- Sistema de respaldo sencillo basado en ;
- La disponibilidad de medios para proteger la integridad del almacenamiento contra daños en los datos, por ejemplo, en caso de un corte de energía (el almacenamiento tiene forma de );
- Implementación en el lenguaje Go, lo que proporciona un equilibrio entre rendimiento y complejidad del código en comparación con Rust y C++.
- Se proporcionan códigos fuente , que admite la escalabilidad horizontal en múltiples servidores y muestra bajos costos generales. Hay medios para asegurar alta disponibilidad.
Fuente: opennet.ru
