códigos-fonte — um banco de dados rápido e escalável para armazenar e processar dados na forma de séries temporais (um registro forma um tempo e um conjunto de valores correspondentes a esse tempo, por exemplo, obtidos por meio de sondagens periódicas do estado dos sensores ou coleta de métricas). O projeto compete com soluções como , , , e . O código é escrito na linguagem Go e estão sob a licença Apache 2.0.
As vantagens e características do VictoriaMetrics:
- É simples de operar. É um único arquivo executável com configurações mínimas passadas pela linha de comando ao iniciar. Todos os dados são armazenados em um único diretório, especificado ao iniciar através da flag "-storageDataPath";
- Suporte à linguagem de consulta , utilizada no sistema de monitoramento . Suportam subconsultas PromQL e algumas , como a expressão "offset", padrões dentro de "WIDTH", operadores "if" e "default", funções adicionais e a possibilidade de inclusão de comentários;
- Capacidade de uso como , conectado ao Prometheus e .
- Disponibilidade de modo de preenchimento reverso para carregar dados históricos;
- Suporte a vários protocolos de transmissão de dados, incluindo , , e . Além disso, o VictoriaMetrics pode ser usado como uma substituição transparente para o InfluxDB e pode trabalhar com coletores compatíveis com InfluxDB, como Telegraf;
- Alto desempenho e baixo consumo de recursos com sistemas concorrentes. Em alguns testes, o VictoriaMetrics supera o InfluxDB e TimescaleDB na execução de operações de inserção e consulta de dados até 20 vezes. Na execução de consultas analíticas, a vantagem em comparação com bancos de dados relacionais PostgreSQL e MySQL pode variar de 10 a 1000 vezes.
- Está disponível de processamento de um número muito grande de séries temporais únicas. Ao processar milhões de séries temporais diferentes, consome até 10 vezes menos RAM do que o InfluxDB.
- Alto grau de compressão de dados no armazenamento em disco. Em comparação com o TimescaleDB, pode acomodar até 70 vezes mais registros no mesmo volume de armazenamento;
- Existência de otimizações para armazenamentos com altas latências e baixo número de operações de entrada/saída por segundo (por exemplo, discos rígidos e armazenamento em nuvem da AWS, Google Cloud e Microsoft Azure);
- Sistema simples de backup baseado em ;
- A disponibilidade de recursos para proteger a integridade do armazenamento contra a corrupção de dados, por exemplo, em caso de desligamento de emergência (o armazenamento é da forma );
- Implementação na linguagem Go, que oferece um compromisso entre desempenho e complexidade de código em comparação com Rust e C++.
- Os códigos-fonte são fornecidos , que suporta escalabilidade horizontal em vários servidores e demonstra baixa sobrecarga. Existem recursos para garantir alta disponibilidade.
Fonte: opennet.ru
