/connquality

Network Connection Quality Measuring tool

Primary LanguagePythonOtherNOASSERTION

What is this?

This is a tool for monitoring your internet connection. It will allow you to log the average latency to any endpoint you choose and any errors that might occur during that.

You can then use that log to make a pretty graph.

Currently monitoring supports the following protocols:

  • TCP/IP

It is rather easy to add more protocols and at least the following are planned:

  • HTTP(S)
  • DNS
  • ICMP

What does the result look like?

Screenshot

Windows usage

The binary .exe files are available at the project releases page.

To start collecting data use the monitor.exe tool:

monitor --help

To then graph the results use the graph.exe tool:

graph --help

You can also just double-click on graph.exe to run on defaults, assuming you're logging to the default file with the monitor as well.

Other platforms

This tool requires you to have Python 2.6, 2.7, 3.2, 3.3 or 3.4 (probably anything newer works too) and pip installed.

Setting up:

pip install -r requirements.txt

To start collecting data, use the monitor.py tool:

python monitor.py --help

To then graph the results use the graph.py tool:

python graph.py --help

Example usage

Monitoring

The only required parameter is one or more --tcp=address:port.

E.g. to monitor that you can access google.com and opendns' guide:

python monitor.py --tcp=google.com:80 --tcp=guide.opendns.com:80

Or on Windows:

monitor --tcp=google.com:80 --tcp=guide.opendns.com:80

Graphing

And to graph with the default settings:

python graph.py

Or on Windows

graph

Is it working atm?

Every update to GitHub is tested automatically with Travis CI.

The status should be clearly visible here:

Build Status

Building for Windows

If you are planning on updating the Windows release, you need to know how to do it. This is not required for Windows users using the .exe versions of the tools.

You'll need to download matplotlib and numpy (check requirements.txt for versions) manually.

You also need to install cx_Freeze (pip install cx_Freeze) and pywin32.

Replace the C:\python27\ path with whatever your installation directory is.

pip install -r requirements.txt
python setup.py build

You'll have the windows distribution files available under build/something.

Licensing?

Short answer: New BSD or MIT

Long answer: Read LICENSE.txt

Financial support

This project has been made possible thanks to Cocreators and Lietu. You can help us continue our open source work by supporting us on Buy me a coffee.

"Buy Me A Coffee"