Release of FogMon's Docker image for the LiSCIo experiment (Fed4Fire+)
10K+
A distributed monitoring tool for Cloud-IoT and Fog computing infrastructures
FogMon 2.0 has been released as a result of the experimental activities of the project "Lightweight Self-adaptive Cloud-IoT Monitoring across Fed4FIRE+ Testbeds (LiSCIo)" funded within the 8th Fed4FIRE+ Competitive Call – Innovative Experiments | Category “Medium Experiments”.
FogMon 2.0 was assessed and tuned in lifelike experimental settings on Cloud-IoT resources across the Virtual Wall and CityLab testbeds, featuring 20, 30 and 40 monitored nodes.
FogMon 1.x and the overall functioning of the tool have been fully described in the following articles:
Stefano Forti, Marco Gaglianese, Antonio Brogi
Lightweight self-organising distributed monitoring of Fog infrastructures,
Future Generation Computer Systems (2020), DOI: 10.1016/j.future.2020.08.011.
Antonio Brogi, Stefano Forti, Marco Gaglianese
Measuring the Fog, Gently,
17th International Conference on Service-Oriented Computing (ICSOC), 2019.
If you wish to reuse source code in this repo, please consider citing them.
Overall, the new version of FogMon substantially improves and tune the previous one. The experiments carried out in LiSCIo definitely improved on the technology readiness level (TRL) of FogMon, bringing it from TRL 4 (validation in a laboratory environment, over only 13 nodes) to TRL 5 (validation in a relevant environment, with up to 40 nodes).
Particularly, FogMon 2.0 includes the following improvements with respect to previous releases:
git submodule init
git submodule update
There is a Docker image for easily running the node.
docker build --tag fogmon .
Then run a Leader with the command
docker run -it --net=host fogmon --leader
and the other nodes with
docker run -it --net=host fogmon -C ip_leader
All the other parameters are visible reading the main.cpp, they can set up all FogMon parameters (time between tests, time between checks etc).
Some ports needs to be open for incoming connections, by default they are:
5555/TCP fogmon
5201/TCP iperf
8366/TCP assolo
8365/UDP assolo
Let's call the 5 nodes A, B, C, D, E and their ip IP_A, IP_B,..., IP_E.
First run one of the nodes (A) as a default Leader
docker run -it --net=host fogmon --leader
then connect all the other nodes to A
docker run -it --net=host fogmon -C IP_A
After 5 rounds the parameter "--time-propagation" a Leader selection happens, and 2 new leaders are selected. This is because the number of Leaders is too low to sustain 5 nodes.
The tool can be compiled outside Docker (not advised) as follows:
cmake .
make
dependencies:
sqlite3 for development
libstdc++ for static linking
libserialport
sigar:
https://github.com/hyperic/sigar
it needs libtool for compiling
and if it does not compile then try with:
./autogen.sh && ./configure && make && sudo make install
and
make clean
./autogen.sh && ./configure && make CFLAGS=-fgnu89-inline && sudo make install
Content type
Image
Digest
sha256:d473f4c58…
Size
202.8 MB
Last updated
about 2 years ago
docker pull diunipisocc/liscio-fogmon