Infrastructure-as-code benchmarking tool for LavinMQ, using Terraform to provision AWS resources and lavinmqperf to run performance tests.
- Terraform >= 1.3.0 — installation guide
- AWS credentials with permission to create EC2 and VPC resources
- An SSH key pair for instance access
Provisions a broker and one or more load generator instances, then runs a single user-supplied lavinmqperf command. Useful for ad-hoc throughput or latency measurements where you control the exact test parameters.
Runs sequential throughput tests across a configurable set of message sizes. Produces a markdown summary table (publish and consume rates per message size) stored on the load generator and displayed as Terraform output.
Runs sequential latency tests across a configurable set of message sizes and rate limits. Produces one markdown table per message size showing latency percentiles (min, median, p75, p95, p99) and bandwidth, stored on the load generator and displayed as Terraform output.
Variables can be supplied in three ways:
terraform.auto.tfvars — loaded automatically by Terraform:
terraform applyterraform.tfvars — loaded explicitly:
terraform apply -var-file="terraform.tfvars".env file via dotenv — environment variables prefixed with TF_VAR_:
dotenv terraform applyUse the templates in modules/providers/aws/variables_template/ as a starting point:
terraform_tfvars.txt— for.tfvarsfilesenv.txt— for.envfiles
AWS credentials must be set as environment variables regardless of the method used:
export AWS_ACCESS_KEY=*** export AWS_SECRET_KEY=***Enable detailed Terraform provider logs by setting:
export TF_LOG_PROVIDER=DEBUGAccepted levels: INFO, DEBUG, WARN, ERROR, TRACE.