ISP Performance
Home
Up
Analyze602
AVReceiver
FreeSpace
Home Automation
Irrigation Control 1
ISP Performance
PantryTech/Pod
QuizManager
RandomPix
SlideShow
Web Extraction
Web Path Analyzer
Web Tool
WxPatch

ISP_Performance is a simple script that acquires ping response times from your upstream services, which can include your firewall, cable modem and ISP (as shown here).

ISP

Cable Modem

Firewall

Prerequisites

  • Installed and operational web server - tested only with IIS on WinXP. There is no reason you can't make this work with other configurations, as it is basic technology.

Download the Needed files

  • ISP_Performance.zip contains the script to capture the metrics.
  • Perl is a 3rd party program language/compiler. I use the pre-built from Active-State.
  • MRTG is a 3rd party tool that ISP_Performance uses. I recommend you get the pre-built version for your OS. I use mrtg-2.11.1.zip for my XP installation.

Installation and Configuration

  • I assume you can get Perl and MRTG installed successfully, and more help for that is available on their sites, not mine. I installed my Perl to c:\Tools\Perl, and MRTG to c:\Tools\MRTG, which you'll see later. If you installed yours elsewhere, you'll need to account for that.
  • Unzip ISP_Performance.zip and copy the ISP_Performance.pl and ISP_Performance.cfg to a folder of your choice. In my case, it is c:\Tools\ISP_Performance.
  • Edit ISP_Performance.cfg. Here is a copy of my file, where I've highlighted the items you need to change for your setup.
    ######################################################################
    # Description: ISPPerformance
    # Contact: Dave Smart (Smartware@Smart-Family.net)
    # System Name: ISP Performance
    # Location: My house
    #.....................................................................
    #
    # Run with > mrtg ISP_Performance.cfg

    WorkDir: <PATH TO YOUR WEBSERVER>\ISP_Performance\Monitor

    # Make it run all the time
    RunAsDaemon: yes
    Refresh: 300

    # Common settings
    YLegend[_]: mSec
    ShortLegend[_]: mSec
    Extension[_]: htm
    MaxBytes[_]: 15000
    #kilo[_]: 1000
    Options[_]: gauge, unknaszero, growright, avgpeak, pngdate
    WithPeak[_]: wmy
    Colours[_]: GREEN#00C000,BLUE#0000ff,RED#FF0000,VIOLET#ff00ff
    Legend1[_]: mSec
    Legend2[_]: mSec
    Legend3[_]: mSec
    Legend4[_]: mSec
    LegendI[_]: mSec
    LegendO[_]: mSec
    XSize[_]: 600
    YSize[_]: 240
    Background[_]: #E0E0E0
    PageFoot[_]: For more information, contact <a href="mailto:smartware@Smart-Family.net">
    Dave Smart</a>
    .
    PageTop[_]: <H1>Firewall Latency</H1>
    This shows ping response time to your ISP and can be an indication of quality of service
    and additionally used as an uptime report.



    Target[firewall]: `ISP_Performance.pl 192.168.1.1`;
    Title[firewall]: Round Trip time to Firewall

    Target[Cable]: `ISP_Performance.pl 192.168.100.1`;
    Title[Cable]: Round Trip time to Cable Modem

    Target[isp]: `ISP_Performance.pl www.mchsi.com`;
    Title[isp]: Round Trip time to www.mchsi.com
  • As you see, there are only a very few changes to make. In my case, I am monitoring 3 systems - my firewall, (which is then connected to) my cable modem, (which is then connected to) my ISP. I want to make sure I can isolate any problem to inside or outside the house.

Testing and Deployment

  • This is where it gets pretty easy. Open a command shell in the folder c:\Tools\ISP_Performance and ping your ISP. The last line has the metrics of interest.
    C:\Tools\ISP_Performance>ping -n 3 -w 1000 www.mchsi.com

    Pinging www.mchsi.com [66.201.42.86] with 32 bytes of data:

    Reply from 66.201.42.86: bytes=32 time=68ms TTL=244
    Reply from 66.201.42.86: bytes=32 time=67ms TTL=244
    Request timed out.

    Ping statistics for 66.201.42.86:
    Packets: Sent = 3, Received = 2, Lost = 1 (33% loss),
    Approximate round trip times in milli-seconds:
    Minimum = 67ms, Maximum = 68ms, Average = 67ms
  • Now, try the same thing with ISP_Performance.pl
    C:\Tools\ISP_Performance>ISP_Performance.pl www.mchsi.com
    67
    69
    a while
    www.mchsi.com
    67
    69
    a while
    www.mchsi.com
  • Now, you can run it with MRTG. You'll see on the last line that I stopped with with ctrl-C. Note also that it pinged each system, my firewall, my cable modem, and my ISP.
    C:\Tools\ISP_Performance>c:\Tools\MRTG\bin\mrtg.pl ISP_Performance.cfg
    Daemonizing MRTG ...
    Do Not close this window. Or MRTG will die
    67
    72
    a while
    192.168.1.1
    67
    78
    a while
    192.168.100.1
    66
    85
    a while
    www.mchsi.com
    ^C
  • At this stage, you can view the files it produced, which are in your web server in the "WorkDir" as configured within the configuration file. Also, if you didn't ctrl-c it, you have a shell laying on your desktop that can be annoying and it will only run when you're logged in. I used a couple of tools available from Microsoft's resource kit for XP that allowed my to install this as a service, so it will run with or without any active logon. This is quite important if you are serious about your monitoring. With this configuration, I do a ">net start ISP_Performance" and it loads and runs in the background, for as long as the computer is powered. This keeps the metrics up to date.

License Agreement

This program is Webware. You may install it, test it for a reasonable period of time, and even modify it, but if you elect to keep it in use, whether in original form or in a modified form, you are then obligated to pay on a scale based on the value you receive from it. You are not allowed to redistribute any modified copy.

As with other license agreement, this program is supplied as is, and is not guaranteed free from defects. You assume all risk for problems you may incur as a result of the use of this program.

You can use this secure payment system to tell me how you like these programs. If you feel you've acquired a $1 program, then please, send only a single dollar. If you feel it is worth more, then fill in the amount that matches the value you've received.