home | software | site monitor | vizzavi case study
My friend Mel used to work for a company called Vizzavi in London, on the Strand (no longer trading). The company provides a multi-device-access information portal. Mel's role involved rostered 24x7 support of the production environment.
I volunteered to develop this application to provide:
Note that this application simulates a web-browser to do this. No inside knowledge of Vizzavi's application architecture is needed or used. The application I've developed could be used for almost any website.
I've put together a sample analysis report of logged data.
The application, written entirely in Java, repeatedly simulates a user logging in, checking their email, then logging out. It has been tested on JDK 1.3.1 and 1.4.0 under WinXP, Win2000 and Solaris.
The code has been implemented in a generic fashion, making it very simple to reconfigure and operate against another site with different services and session management tactics. Let me know if you have a site you'd like to test.
To get the application started, copy viztest.jar to your local machine and from a command prompt type:
Under Win2000 & WinXP, it's possible to double-click the file in explorer. On some machines (for example those with WinZip installed), you may need to right click, select 'Open With >' and choose 'javaw'.
The user must provide login details for a valid account at www.vizzavi.co.uk. Credentials are not saved to the local machine.
Once these credentials are supplied, the user is asked whether performance data is to be logged. Logging can be enabled or disabled at any time via the menu bar.
Let the program run for a while, and you'll see the above chart. The different data series represent the different steps in a sequence (Login, Check mail, Logout). Since the lines show how long it takes to perform a task on Vizzavi's servers, smaller numbers are better. Note that these values indicate the time taken to deliver web pages to the machine on which you are running the application. You can expect longer times on a 56K modem than on ADSL, and longer times in Australia than in Europe.
The current state is shown at the bottom of the window. Cookie is the value assigned via HTTP cookies, and is used by Vizzavi's web mail application. ResinId is the string used for session management via URL re-writing. The current stage in the sequence is shown (here, it is 'Check Mail'). The colour of which the stage's name corresponds to the line on the chart. Finally, the status of the operation is also shown (either Running, Paused of FAULT).
The app can be paused and resumed using the Status menu. The current status is always displayed in the bottom right corner of the main window.
The time taken to complete each step in the sequence is logged in in a CSV format to the specified file when logging is enabled (see above). The timestamp format (dd/MM/yyyy HH:mm:ss) is easily parsed by MS Excel. All time values are in milliseconds.
In the instance of an error in communication with a Vizzavi server (such as a network timeout, connection
refused or premature EOF), an alarm can be raised. The details of this error are currently displayed on
the console (via System.err
).
As can be seen, the file menu allows the setting of an audible alarm in the instance of a networking error. The alarm will continue to sound for as long as the network error persists. The audio file played is bundled in the JAR file and can be changed if the JAR is unzipped.
The chart class is an extension of JPanel of mine. It expands gracefully, and y-axis markers are chosen in such a way that the screen is not cluttered.
The chart uses a special implementation of Graphics
that I've created to draw smooth,
anti-aliased lines. The implementation uses my variation on the well-known Wu algorithm. The
class, called SmoothGraphics
can be used with alpha blending (slower but nicer), or
fixed-background-colour blending (shown).