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:
- Consul, for service registration
- Prometheus, for keeping metrics
- Influxdb, for long-term storing metrics
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:
- First you should remove/change the “smart-plug” service from docker-compose.yaml
- 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)