Skip to content

A distributed monitoring tool for Fog computing infrastructures

License

Notifications You must be signed in to change notification settings

di-unipi-socc/FogMon

Repository files navigation


Release 2.0

Home Screen

FogMon 2.0 is available here!

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.


Home Screen

A distributed monitoring tool for Fog computing infrastructures

FogMon, with its self-organising topology mechanisms, node churn handling and differential monitoring updates, has been fully described in the following article:

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.

The first release of FogMon was described in the following article:

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.

How To

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

Example execution on 5 nodes

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.

Compile outside docker

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

About

A distributed monitoring tool for Fog computing infrastructures

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •