The go-lo Agent exposes a set of gRPC endpoints designed to run go-lo Loadtests, as created with go-lo/go-lo, which are packed into containers.
The agent takes a schedule which looks like:
version: job:latest
schema:
name: "my loadtest"
users: 1024
duration: 900
container: somecontainer:latest
It will then enqueue this job- only one job is run at a time; multiple running jobs can affect results by creating agent network contention.
When running a job, an agent will:
- Run the container, exposing the job's gRPC server
- Try to connect to the job container, following an exponential backoff strategy
- Create a pool of 1024 users, each of which will trigger a job run every second
- After 900 seconds have elapsed, close the user pool, and kill the container
- Wait for another job to schedule
This project comes with a cli