This repository provides infrastructure and automation to benchmark VictoriaLogs against Loki for log ingestion, storage, and query performance.
The setup uses Terraform and Ansible to provision the environment, deploy services, and visualize benchmarking results. The setup requires the LXD runtime for container management and environment provisioning.
| Component | Version |
|---|---|
| VictoriaLogs | 0.25.0 |
| VictoriaMetrics | 1.121.0 |
| Loki | 3.4.4 |
| Grafana | 12.1.0 |
| Telegraf | 1.30.0 |
| Promtail | 3.0.0 |
| LXD | 6.5 |
- Log data
- Logs are downloaded and stored in /var/logs in unarchived format.
- Promtail scrapes logs from this directory and forwards them to VictoriaLogs or Loki.
- Infrastructure
- Provisioned via Terraform.
- Configured using Ansible with role-based tagging.
- Visualization - Grafana is used as the frontend, connected to VictoriaMetrics or Loki as data sources.
terraform init
terraform apply
./append_ssh_keys.sh
See inventory_example.txt file
This will configure the infrastructure with all additional components to perform the benchmark
ansible-playbook -i ansible/inventory.ini ansible/playbook.yml --limit grafana \
--tags "grafana,victoriametrics"
ansible-playbook -i ansible/inventory.ini ansible/playbook.yml --limit loki \
--tags "loki,loki_promtail,telegraf,netdata" \
-e "vmetrics_host=<grafana-bench-ip>"
ansible-playbook -i ansible/inventory.ini ansible/playbook.yml --limit vlogs \
--tags "vlogs,vlogs_promtail,telegraf,netdata" \
-e "vmetrics_host=<grafana-bench-ip>"
ansible-playbook ansible/playbook-generate-logs.yml -i inventory.ini --limit loki,vlogs

