Control plane setup for private locations

Private Locations on your own private account.

A location describes where to start load generators:

  • Public locations are available by default, and listed by regions.
  • Private locations must be configured, and allow you to deploy load generators on your own infrastructure.

Introduction

To configure private locations, you must configure an agent in your infrastructure, called a Control Plane.

This control plane will be in charge of spawning load generators in different locations, based on the configuration you will provide.

Infrastructure schema

The control plane will periodically poll our API gateway to find out if a new simulation run has been started using locations handled by this control plane.

If so, it will start new instances (based on the locations configurations) and start the simulation run on them. Those instances will send stats through the API gateway as well.

Control plane

Network

Token

Access the private locations section by clicking on the Private locations in the navigation bar (only visible if the feature is activated on your organization).

Click on create control plane, and fill a unique identifier (only lowercase, separated by underscores).

Create control plane

On the next modal, make sure to copy the control plane token, you’ll need it later.

Copy control plane token

You can see the control plane you just created under the Control planes tab.

Control Planes table

It is defined by a unique identifier, a description (provided later on by its configuration) and a status.

The status has three possible values:

  • Uninitialized: the control plane has never contacted the application
  • Up: the control plane is properly configured, has uploaded the names of its configured private locations, and periodically calls the application to fetch new runs.
  • Down: the control plane has been up, but hasn’t called the application for a while.

Configuration

The locations managed by the control plane are configured by a file. The configuration file uses the HOCON format (Human-Optimized Config Object Notation):

control-plane {
  # Control plane token
  token = "cpt_example_c7oze5djp3u14a5xqjanh..."
  # Control plane token with an environment variable
  token = ${?CONTROL_PLANE_TOKEN}
  # Control plane description (optional)
  description = "Control plane optional description"
  # Control plane private locations
  locations = [
    {
      # Private location ID, must be prefixed by prl_, only consist of numbers 0-9, 
      # lowercase letters a-z, and underscores, with a max length of 30 characters
      id = "prl_example"
      # Private location description (optional)
      description = "Private location optional description"
      # Private location provider specification
      # ...
    }
  ]
}

For examples of private locations configuration, see:

Installation

The control plane agent is distributed as a docker image: gatlingcorp/control-plane. It is available for the linux/amd64 and linux/arm64 platforms (Docker will automatically select the correct image variant).

For examples of installations, see:

Managing Control Planes on Gatling Enterprise Cloud

Once configured and running, your control plane status should go Up within a few seconds, details are available by clicking on the button. Tokens can be refreshed by clicking on the button.

Control Planes details

Private locations can be seen in the Locations tab. You can see their relations to their control plane and simulations.

Locations table

They can be deleted if they are neither linked to a control plane that is currently Up nor to any simulation.

Simulation configuration

When configuring a simulation, on the locations step, click on private.

Simulation configuration of private locations

Credit consumption

Private locations consume credits like public locations: one credit, per load generator, per minute.

Edit this page on GitHub