The goal of this project is to start tests (ping/jitter/packet loss/mos/download/upload) from a client (can be everything as long as it meets requirements) to a target to monitor networks between the client and the target.
- Flask - Web microframework
- Gunicorn - WSGI HTTP Server for UNIX
- Jinja2 - Template engine
- Bulma - CSS framework
- PyZMQ - Python bindings for ØMQ
- Requests - HTTP library
- Linux
- Python 3.6 or newer
- Python 3.6 or newer
Download or clone –> https://github.com/lyon-esport/Supervision.git
Extract the Supervision files
-
Open a terminal in Server folder
-
Install the requirements:
pip install -r requirements.txt
-
Create the database
python3 setup.py
to generate the database (database.sqlite will appear) -
Edit
config/server.json
with the right settings
-
Open a terminal in Client folder
-
Install the requirements:
pip install -r requirements.txt
-
Edit
clientZMQ.json
with the right settings
-
Open a terminal in Server folder
-
Start the server with:
gunicorn --bind 0.0.0.0:80
-
Access to the server on
http:myIPAdress:80/
-> replace myIPAdress by your IP address
-
Open a terminal in Client folder
-
Start the client with
python3 client.py
-
Standard test
The probe will start a test and will give you the ping/jitter/packet loss/mos. standard test target can be anything (phone, laptop, server etc...) you just need to put the IP of the device
-
Speedtest
The probe will start a test and will give you the download and the upload. Speedtest target is an iPerf server you need to put the IP and the Port of the iPerf server you can add iPerf options
-
Autotest
If checked, the probe will repeat a test each X seconds and will send the result to InfluxDB else the probe will do one test and will save it in the local database
-
Comment
You can write what you want, this field is often used to write a comment about the test performed
If you want to save time, you can save Standard test
and Speedtest
server.
You have two type of test : test
and autotest
test
will be saved in a local database (sqlite) and will be visible on archive page
autotest
will be saved in InfluxDB database
You can see all autotest launched and you stop them.
packet number-> packet_number,probe=<probe_name> value=<packet_number>
packet timeout-> packet_timeout,probe=<probe_name> value=<packet_timeout>
ping -> ping,probe=<probe_name> min=<min_ping>, max=<max_ping>, avg=<average_ping>
jitter -> jitter,probe=<probe_name> value=<jitter_value>
packet_loss -> packet_loss,probe=<probe_name> number=<pack_loss_number>, percent=<packet_loss_percent>
mos -> mos,probe=<probe_name> value=<mos_value>
download -> download,probe=<probe_name> min=<min_download>, max=<max_download>, avg=<average_download>
upload -> upload,probe=<probe_name> min=<min_upload>, max=<max_upload>, avg=<average_upload>
speedtest option-> speedtest_option,probe=<probe_name> value=<speedtest_option>
comment -> comment,probe=<probe_name> value=<test_comment>
The code is under CeCILL license.
You can find all details here: http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.html
Copyright © Lyon e-Sport, 2018
Contributor(s):
-Ortega Ludovic - ludovic.ortega@lyon-esport.fr
-Barbou Théo - theobarbou@gmail.com
-Dupessy Clément - clement07131@hotmail.fr
-Julian Marty - julian.marty83@gmail.com