Giter VIP home page Giter VIP logo

iperf3_plotter's Introduction

iperf3_plotter

Shell script that plots iPerf3's JSON file

About

This is a simple shell script that accepts the JSON output of iPerf3 and plots the results using gnuplot. Basically, there are two shell scripts:

preprocessor.sh

This script converts iPerf3's JSON file to a Comma-separated value (CSV) file. It also uses AWK to format the fields.

plot_iperf.sh

This script accepts iPerf3's JSON file, calls preprocessor, and calls gnuplot to create PDF outputs for the following fields extracted from the JSON file:

  • socket
  • start
  • end
  • start
  • seconds
  • seconds
  • bytes
  • bits_per_second
  • retransmits
  • snd_cwnd
  • rtt
  • rttvar
  • pmtu
  • omitted

Install

This script requires jq and gnuplot. Run the following command in the script's directory. It installs the dependencies, and makes the scripts accessible anywhere.

sudo make

Usage

preprocessor.sh <iperf_json_input> <output_directory>
Example: preprocessor.sh my_test.json simulation_results
plot_iperf.sh <iperf_json_file>
Example: plot_iperf.sh my_test.json

Sample run in mininet:

  1. Launch mininet and create your topology
  2. Launch the xterms of the hosts
  3. Start the iPerf3 server:
iperf3 -s
  1. Start the iPerf3 client: (-J to create a JSON output, -P to start multiple flows, -t to specify the transmission time, and finally, redirect the stdout to a file).
iperf3 -c 10.0.0.2 -J -P 4 -t 60 > my_test.json
  1. Use the plot_iperf.sh script to generate the output. This will create a results directory containing the plots of all fields.
iperf_plot.sh my_test.json

Test the script on the my_test.json file provided in the sample directory

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

iperf3_plotter's People

Contributors

ekfoury avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.