Monitoring

BenchPilot Monitoring System #

BenchPilot Monitoring divides its services on the Control Plane, where BenchPilot Client and core monitoring services will run on, and its workers, where the benchmarking will happen.

On the Control Plane, BenchPilot reuses the following existing projects:

On each Worker device, BenchPilot uses Netdata for capturing its metrics, and meross smart plugs for retrieving energy consumption. You can use any smart plug you wish for capturing energy consumption by exposing its measures to Netdata. Additionally, since we’ve been recently experimenting on co-located scenarios, we decided to expose cadvisor metrics to netdata, as to retrieve metrics per docker container (benchmark service).

You can find everything that you might need for the the monitoring stack in our repository, under the monitoring folder.

Setup Monitoring System #

First of all, you need to download or clone our GitHub Repository.

Install Docker & Docker Compose #

If you haven’t installed docker and docker-compose on your devices yet (control plane & workers), just execute the following command on each one of them:

sh install-docker.sh

Start Control-Plane Services #

When you have docker and docker-compose installed, all you need to run on the Control Plane is the following command:

docker-compose up -f docker-compose-monitoring.yaml

Don’t forget to replace the environment variables however you would wish to (e.g. “${database_name}”)

Start Worker Services #

On each Worker you can start and setup Netdata by just running:

docker-compose up -f docker-compose.yaml

If you will not use any kind smart plugs, just comment-out the smart plug docker service, otherwise, please update (i) your meross account’s information and (ii) the smart plug’s unique name/number.

Changing smart plug configuration #

There are two things needed for this process:

  1. First you should remove/change the “smart-plug” service from docker-compose.yaml
  2. Update the netdata/prometheus.conf. You should update accordingly the “smart_plug” configuration, which is defined in the end of the “prometheus.conf”. This setup is responsible for exposing the power consumption measurements to netdata.

Register Worker nodes to Consul #

After you have started the worker services, on each worker, enter the Consul folder and execute the following command:

sh register_to_consul.sh

Please, don’t forget to replace the IPs and ports in the script(Consul Ip & Port, worker device IP and netdata port)