Skip to content

ETL tool focused on overhead comparison and automatic configuration of the MPolKA-INT network monitoring approach

License

Notifications You must be signed in to change notification settings

nerds-ufes/Polkalyzer

Repository files navigation

Polkalyzer - Polka analyzer tool for any given topology.

Polkalyzer Explained

This tool can be dissecated in multiple parts.
Filter Raw Topologies Dataset:
1 - Load topologys dataset with NetworkX.
2 - Remove topologys that can't be read by multiple factors.
3 - Remove topologys that are disconnected graphs.
Transform a Graph into a MST:
4 - Transform GML Files that represent a topology into a minimum spanning tree (MST).
You can choose what MST Algorithm you want avaible in networkx.
Extract Probe Matrix:
5 - Perform a DFS in extracted MST to simulate probes from different telemetry approaches.
You can choose the a fixed node sender or leave to algorithm decide the optimal node sender for all given topologies.
Fill the dataframe until there are no more unread topologies
6 - While algorithm is performing a DFS, the algorithm will extract a lot of usefull information about each topology and fill the dataframe.
Data Export:
7 - Export to output/Topology MPolKA-INT/MPINT probes to all topologys given in topologyZoo.
8 - Export to output/Data all usefull information collected into a csv.
9 - Export to output/Plots different plots to help us to understand the information collected.

Installing Polkalyzer dependencies

You will need Python3 to run Polkalyzer, so try it:

python --version

If you haven't it, try install: https://www.python.org/downloads/

You also will need PIP dependencies:

pip install -r requirements.txt

Using Polkalyzer

First of all, run Polkalyzer.py

python Polkalyzer.py

or

python3 Polkalyzer.py

Algorithm Choice
You can choose between three algorithm options, after chosen wait finish and check your output folder.

Troubleshooting

If you can't run python or pip on CLI (Command Line Interface):

For Windows Users:
Check your Environment Variables to run pip on Terminal.

- Enviroment Variables:
    Add to PATH:
    C:\Users\YOUR_USERNAME\AppData\Local\Programs\Python\Python3XY
    C:\Users\YOUR_USERNAME\AppData\Local\Programs\Python\Python3XY\Scripts
- New System Variable:
    Name: PYTHONUTF8
    Value: 1

Change YOUR_USERNAME to something like lucas
Change Python3XY to something like Python311

Consider giving us a star ⭐

If you have used or benefited from Polkalyzer in any way, we kindly ask you to show your support by giving us a star ⭐ on GitHub. Your star is a valuable feedback for us, and it encourages us to continue improving the project.

We are committed to delivering the best experience possible, and your feedback plays a crucial role in achieving this goal. So, if you enjoyed Polkalyzer, we would greatly appreciate your support through a star on our GitHub repository.

Thank you for your interest and contribution to our project. Your support means a lot to us!

Contributing

You're free to contribute refactoring and improving our code. Don't hesite to fork this repo.
How you can contribute:

  • Refactoring our code
  • Improving performance comparing hash of output/
  • Building more utils for the Control Plane

Maintainers

Log (Under Development)

  • Calculate the probe path from a topo
  • Allowed to download topologys .gml from topologyZoo
  • Allowed to fill input/ with topologys
  • Calculate overhead from MPINT Approach
  • Calculate overhead from MPolKA-INT Approach
  • Calculate overhead from Original INT Approach
  • Filling dataframe with topologys information
  • Allowing plotts
  • Allowing draws from (Graph and MST)
  • Allowed transform NetworkX Graphs into Mininet Topologys.

References

Topology Dataset - http://www.topology-zoo.org/dataset.html

About

ETL tool focused on overhead comparison and automatic configuration of the MPolKA-INT network monitoring approach

Resources

License

Stars

Watchers

Forks

Releases

No releases published