Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

VictoriaLogs and Loki Benchmarks

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.

Versions

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

Benchmark Workflow

Overview

Alt text

  1. 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.
  1. Infrastructure
  • Provisioned via Terraform.
  • Configured using Ansible with role-based tagging.
  1. Visualization - Grafana is used as the frontend, connected to VictoriaMetrics or Loki as data sources.

Workflow

1. Provision

terraform init
terraform apply

2. Authorize to container/VM

./append_ssh_keys.sh

3. Replace Ip's in inventory file

See inventory_example.txt file

4. Run setup playbook for each VM/container using tags

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>"

4. Configure connection/datasource and open imported dashboard to explore the metrics of the hosts

5. Run log_generate role to download and extract logs

ansible-playbook ansible/playbook-generate-logs.yml -i inventory.ini --limit loki,vlogs 

Alt text

About

Terraform and Ansible-based environment for benchmarking VictoriaLogs against Loki with Grafana visualization.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages