********************************************** Dstat on G5K + FIT IoT LAB (power consumption) ********************************************** Experiment Artifacts ==================== The artifacts repository contains the E2Clab configuration files such as ``layers_services.yaml``, ``network.yaml``, and ``workflow.yaml`` .. code-block:: bash $ cd ~/git/ $ git clone https://gitlab.inria.fr/E2Clab/examples/monitoring-energy-dstat-g5k-iotlab.git $ cd monitoring-energy-dstat-g5k-iotlab/ Defining the Experimental Environment ===================================== Layers & Services Configuration ------------------------------- The ``monitoring`` type is ``dstat``. In ``monitoring_iotlab`` we defined 2 profiles to monitor power consumption in **a8 nodes** (``name: test_capture_a8``) and **rpi3 nodes** (``name: test_capture_rpi``). In addition, we added ``roles: [monitoring]`` in all services (e.g., MyServer, MyClientA, and MyClientB) for ``dstat`` monitoring. For power monitoring, we added ``profile: test_capture_a8`` in **MyClientA** and ``profile: test_capture_rpi`` in **MyClientB**. .. literalinclude:: monitoring-energy-dstat-g5k-iotlab/layers_services.yaml :language: yaml :linenos: Network Configuration --------------------- .. literalinclude:: monitoring-energy-dstat-g5k-iotlab/network.yaml :language: yaml :linenos: Workflow Configuration ---------------------- ``prepare`` installs **stress** on all Services. ``launch`` runs **stress** on all Services. .. literalinclude:: monitoring-energy-dstat-g5k-iotlab/workflow.yaml :language: yaml :linenos: Running & Verifying Experiment Results ====================================== Find below the commands to run this example. .. code-block:: bash $ e2clab layers-services ~/git/monitoring-energy-dstat-g5k-iotlab/ ~/git/monitoring-energy-dstat-g5k-iotlab/ .. code-block:: bash $ e2clab workflow ~/git/monitoring-energy-dstat-g5k-iotlab/ prepare .. code-block:: bash $ e2clab workflow ~/git/monitoring-energy-dstat-g5k-iotlab/ launch Wait at least one minute before ``finalizing`` the workflow and saving the monitoring data. .. code-block:: bash $ e2clab finalize ~/git/monitoring-energy-dstat-g5k-iotlab/ The monitoring data will be saved at: .. code-block:: bash $ ls ~/git/monitoring-energy-dstat-g5k-iotlab/20230927-160723/monitoring-data/ node-a8-103.grenoble.iot-lab.info/ # dstat csv file node-rpi3-1.grenoble.iot-lab.info/ # dstat csv file paravance-19.rennes.grid5000.fr/ # dstat csv file iotlab-energy/379944-grenoble.iot-lab.info.tar.gz 379944/consumption/rpi3_1.oml 379944/consumption/a8_103.oml `FIT IoT LAB `_ provides an `OML plotting tool `_ to help to analyse monitoring data (`github repo `_). .. code-block:: bash $ pip install oml-plot-tools $ plot_oml_consum -p -c -v -i rpi3_1.oml .. _power-rpi3_1: .. figure:: monitoring-energy-dstat-g5k-iotlab/figure-power-rpi3_1.png :width: 80% :align: center Figure 1: Power consumption on rpi3 node. .. _power-rpi3_1_stress: .. figure:: monitoring-energy-dstat-g5k-iotlab/figure-power-rpi3_1-stress.png :width: 80% :align: center Figure 2: Power consumption on rpi3 node during "stress" execution for 30 seconds.