Skip to content
/ agent Public

Run go-lo schedules and push results to one or more collectors

License

Notifications You must be signed in to change notification settings

go-lo/agent

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

62 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Go Report Card Build Status GoDoc

Agent

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:

  1. Run the container, exposing the job's gRPC server
  2. Try to connect to the job container, following an exponential backoff strategy
  3. Create a pool of 1024 users, each of which will trigger a job run every second
  4. After 900 seconds have elapsed, close the user pool, and kill the container
  5. Wait for another job to schedule

Interacting with the Agent

This project comes with a cli