A performance tester for Taskcluster deployments.
NOTE: this is built as a development testing tool and is not suitable for general use.
# Usageyarn load <cfg>
The configuration file contains an object loaders
with an array of loaders to
run. Each object has a name, a use
property giving the loader
implementation, and settings for that implementation.
The included run.yml
is an approximation of today's firefox-ci load.
The output is a frequently-updated textual display giving rates of various API methods, counts of running API calls, and metadata about each running loader.
For example:
loaders:
test-built-in:
use: builtin
pending-count: 100
task-queue-id
- task queue to create tasks inrate
- target pending count for thebuilt-in/succeed
worker pool
This loader creates tasks for the given task queue at the given rate.
It also monitors the pending count for the queue, and will throttle itself it that goes above 20s worth of tasks.
task-queue-id
- task queue to claim fromparallelism
- number of "workers" to run in parallel (each with capacity=4)
This loader claims and "runs" tasks with a simulated worker that takes about 60s to complete a task.
rate
- the rate at which to call the API method (req/s)scopes
- the scopes to expand
This loader calls auth.expandScopes
with random subsets of the given scopes,
attempting to do so at the given rate. It will make multiple parallel calls to
achieve that rate, if necessary.
rate
- the rate at which to call the API method (req/s)
This loader calls queue.task
with random taskIds for tasks that other loaders
have created. It can't start until such a task is created, which may tak ea
few seconds.
rate
- the rate at which to call the API method (req/s)
This loader calls queue.status
with random taskIds for tasks that other loaders
have created. It can't start until such a task is created, which may tak ea
few seconds.
rate
- the rate at which to call the API method (req/s)secret
- name of the secret to set (WARNING: will be overwritten!)
This loader calls secrets.get
with the given secret name, after putting a
fake payload into the secret.