The first two versions of the ISP Report Tool laid a great foundation for capturing and reporting on ISP packet loss information. The one thing that I really did not like in the previous two versions was a lack of reporting granularity necessary to truly understand at a glance what the packet loss meant. I realized that I could get much more specific if I used a graphical tool like a pie chart to convey the various aspects of granularity that I wanted to show. I researched various Cascading Style Sheet (CSS) pie chart options, and the option that worked the best for my needs was
Google Charts API. The only downside to going this route is that if you don't have access to the Internet, then the web report won't work for you.
What's New?
With ISP Report Tool version 3.0, you get the following improvements:
- Provides daily report per target host
- Provides individual pie charts for each target host
- Provides color coded severity (e.g. green, yellow, orange or red) per pie chart
- Separates packet loss reporting by day and by target host
- Separates packet loss percentages per target host
- Separates packet accounting per percentage per target host
- Increases ping frequency from 5 minutes to 2 minutes
- Increases web report update frequency to hourly from daily
- Fixes various bugs
New Web Report
The following screen shot shows what the packet loss looks like at my house for the last few days.
Lets look at a couple rows from this graph to gain an understanding of what we are looking at. The second row, January 2nd, 2001 has one red pie chart in the abc.com column. This indicates that at some point during the day ping reported percentage packet loss above 20% for the target host abc.com. The orange pie chart indicates that ping reported packet loss between 11-20% for yahoo.com. Note that there was no pie chart for google.com. This means that none of the pings to google.com reported any packet loss. Given that there is no correlation across the target hosts of January 2nd, I can safely conclude that there wasn't an issue with my Internet connection.
Now lets look at the last row, January 6th, 2011. All of the pie charts for target hosts yahoo.com, abc.com, cbs.com, and google.com are red. Given that all four target hosts had 100% packet loss on January 6th, this means that there is a very high probability that my Internet connection was having problems. In other words, time to call my Cale/DSL provider to get them to fix the problem. However, in this case it was just me. I turned off the modem to show what the web report would look like with a cable/DSL modem outage.
Detailed View
Another new feature is that you can click on any of the pie charts to get a more granular view of the packet loss percentages of a specific day and target host. The following screen shot shows the packet loss for pings to abc.com on January 2nd, 2011.
Notice that each segment of the pie chart provides both graphically and textually the packet loss percentage as well as how many packets of all packets lost for that day. In this example, the biggest packet loss of 100% represented 200 of the total 254 packets lost for the day. Likewise, only 7 of the 254 lost packets were of the 1% packet loss variety.
Download and Install
You can download
ISP Report Tool v3.0 here. Once downloaded, you only need to run "ispReport install" to install and start the ISP Report Tool. Once running, you can view the command line report with "ispReport report" or create a web report with "ispReport mkwww". Once the web report is created, you can view the web report by opening up your preferred web browser and oping the ${ispHome}/www/ispReport.hml file.
Usage
The ISP Report Tool has 9 subcommands that you can run from the command line to perform various actions. Here are descriptions for each of the subcommands.
start - Start the script
stop - Stop the script
status - Check the status to see if it is running or not
report - Create a report from the log file
showlog - Examine the contents of the log files
install - Install the ISP Report Tool
uninstall - Uninstall the ISP Report Tool
mkwww - Make web report
rotate - Archive the existing log file and create a new log file.
usage - See the usage of the script
Customize
The great thing about the ISP Report Tool is that it is just a simple bash script. This makes configuration very straight forward. There are five configurable variables at the top of the script that you can modify with you preferred editor. The following sections outline these variables.
Target Hosts
You can specify one or more target hosts for ISP Report Tool to ping. If you deploy ISP Report Tool on a private network that cannot reach the Internet, you will want to use a list of target hosts that can be reached by the tool. For most people though, the default four hosts should be sufficient.
The following is the default setting for the targets variable.
targets=('yahoo.com' 'abc.com' 'cbs.com' 'google.com')
ISP Report Home Directory
In order to keep things simple and consistent across multiple platforms, I establish a home directory for all logs and web content. The following is the default setting for the ispHome variable.
ispHome="${HOME}/.ispReport"
ISP Report Log Directory
You can define where to place the log files generated by the ISP Report Tool. The following is default location for the logdir variable.
logdir="${ispHome}/logs"
ISP Report Web Directory
The web directory root is the hardest variable to decide on a default location because the various web servers use different default web roots for different platforms. Thus, the easiest thing to do is put the default location in the ISP Report home directory. The following is the default directory for the webdir variable.
webdir="${ispHome}/www"
In addition to giving you the ability to define the web directory, I also enable you to specify the web document name as well. The default name defined by the webfile variable is ispReport.html.
webfile="ispReport.html"
Conclusion
I hope that you find this tool very useful for streamlining support calls with your ISP when network problems happen.
Thanks to
Google Charts API for their great web service.
Enjoy and have a great day!
PS: As always, this script is provided for reference and is not supported in any way.