These are the Garden Performance Acceptance Tests.
These tests run as part of the garden-runcpipeline and will gate us from shipping a new release if they fail. With this in mind, the goal is to keep this test suite as minimal and quick as possible.
Metrics generated by the test suite are currently sent to Wavefront. This is achieved by wiring up the custom Wavefront Reporter into Ginkgo. In the future, should we wish to send metrics to other services, we can extend the suite by writing and wiring up a new custom reporter for that service.
Note that the reporter package used here is based on this reporter package from the cloudfoundry/benchmarkbbs repo.
In order to run the performance test suite you need to deploy garden and run the fololowing command (you will need the garden server ip as shown in bosh -d vms):
cd $HOME/workspace/garden-ci/directors/eden
fly -t garden-ci login -c https://garden.ci.cf-app.com/
GARDEN_ADDRESS="<garden-server-ip>" fly -t garden-ci execute \
-c $HOME/workspace/garden-performance-acceptance-tests/ci/performance-tests.yml \
-i gpats-main=$HOME/workspace/garden-performance-acceptance-tests
NB: This test suite will destroy ALL containers on the Garden server as part of the run. You have been warned.
This suite is used both to gate releases via expectations on performance but
also to provide metrics when thresholds are succeeded. To achieve this, metrics
related expectations are wrapped in Conditionally()
functions, to ensure they
only fail tests when required. To turn off metrics related expectations, set
the IGNORE_PERF_EXPECTATIONS
environment variable.