PerfsonarUI
From GEANT2-JRA1 Wiki
PerfsonarUI - a perfSONAR visualisation tool
PerfsonarUI's objectives and audience
PerfsonarUI is designed and implemented as an open source, easy to use and yet powerful stand alone graphical user interface client capable of querying a range of perfSONAR services deployed around the world. The primary target user groups for perfsonarUI include NOC and PERT staff, as well as projects with demanding network performance requirements. End-users with some basic technical background also are supposed to master the tool quite easily.
Main PerfsonarUI features overview
- a sample user interface (UI) application implemented in Java;
- retrieval of published data from RRD MA services;
- retrieval of published data from SQL MA services;
- retrieval of published data from Hades MA services (GEANT2 and RIPE domains);
- querying BWCTL MP services;
- ability to run concurrent queries simultaneously (in parallel threads);
- ability to run aggregated queries;
- visualization of OWD, IPDV and packet loss between measurement points (GEANT2 and RIPE domains);
- visualization of input errors and output drops along with utilization data;
- compatible with different schema versions;
- search for interfaces within a list of user-supplied IPv4 or IPv6 addresses;
- parsing of arbitrary IPv4 or IPv6 traceroute command output and visualization of summary/details for the matched interfaces;
- utilization summary for all selected interfaces in tabular and graphical form;
- visualization of utilization details for a chosen interface and a selected time period;
- interface selection through the interfaces table, the bar summary graph or the radar (spider) chart;
- time interval for summary selection through radio buttons;
- time interval for details selection;
- measurement identifier (mid), packet size, group size, interval, and precedence selection for Hades measurements;
- zoom-in (right-click & drag in SE direction) and zoom-out (right-click & drag in NW direction) in Hades measurement plots;
Downloads
Latest beta version
- (26 Jun 2008) PerfsonarUI v0.12a Java Web Start
- (26 Jun 2008) PerfsonarUI v0.12a zip file PerfsonarUI-v0.12a.zip
- (26 Jun 2008) MA.conf configuration file MA.conf
Global Lookup Service support
This version introduces a number of new functionalities and also has the latest bug fixes. It is being frequently updated and would give birth to the next stable release when a sufficient level of maturity is reached.
Latest stable release
- (26 Jun 2008) PerfsonarUI v0.12 Java Web Start
- (26 Jun 2008) PerfsonarUI v0.12 Windows installer (including optional Java Runtime Setup)
- (26 Jun 2008) PerfsonarUI v0.12 ZIP archive (suitable for any other platform)
AA, new Looking glass plugin, updated Circuits plugin
Older releases
- (26 Jan 2007) PerfsonarUI v0.09 Windows installer (including optional Java Runtime Setup)
- (26 Jan 2007) PerfsonarUI v0.09 ZIP archive (suitable for any other platform)
- (13 Jun 2006) PerfsonarUI v0.08 Windows installer (including optional Java Runtime Setup)
- (13 Jun 2006) PerfsonarUI v0.08 ZIP archive (suitable for any other platform)
- (05 May 2006) PerfsonarUI v0.07 Windows installer (including optional Java Runtime Setup)
- (05 May 2006) PerfsonarUI v0.07 ZIP archive (suitable for any other platform)
- (03 Apr 2006) PerfsonarUI v0.06 ZIP archive
- (05 Mar 2006) PerfsonarUI v0.05 ZIP archive
All releases are available from here as well.
Source code
- (latest) PerfsonarUI v0.12 source code SVN repository
- (26 Jun 2008) PerfsonarUI v0.12 source code documentation Javadoc
Presentations
- (30 Oct 2007) PerfsonarUI plug-in development presentation
- (8 Jun 2007) PerfsonarUI plug-in development presentation
System requirements and installation
PerfsonarUI (up to version 0.08) requires Java(TM) 2 Runtime Environment, Standard Edition 1.4 or newer on the target system and it is platform-independent. It runs under any host operating system, which supports Java(TM) 2 Runtime Environment, Standard Edition.
PerfsonarUI-v0.09 (or newer) requires Java(TM) 2 Runtime Environment, Standard Edition 1.5 or newer on the target system.
Stable versions of perfsonarUI are distributed with a fully automated offline installer (PerfsonarUI-vX.YZ-setup.exe), compatible with recent versions of the Microsoft Windows (NT, 2000, XP, 2003) operating system, as well as a ZIP archive. Both distributions include the source code of the application. Windows users should prefer the automatic installer, while the ZIP archive is suitable for any other platform.
In order to install the application on Windows platforms just run the installer and follow its instructions. It contains all the required packages, including the Java(TM) 2 Runtime Environment, Standard Edition 1.4 (or 1.5) setup. Users of other platforms should unzip the PerfsonarUI-vX.YZ.zip archive and launch the application (see perfsonarUI documentation for more details).
If the installer does not detect the required (or newer) version of the Java(TM) 2 Runtime Environment, Standard Edition on the target system, it will attempt to install it before proceeding with application's setup. In this case, the user running the installer SHOULD HAVE ADMINISTRATIVE PRIVILEGES on the target system (otherwise the Java(TM) 2 Runtime Environment, Standard Edition setup would be aborted and perfsonarUI would not be installed).
If the installer detects the required (or newer) version of the Java(TM) 2 Runtime Environment, Standard Edition already installed on the target system, it will proceed directly with application's setup. In this case, ADMINISTRATIVE PRIVILEGES ARE RECOMMENDED BUT NOT NECESSARILY REQUIRED.
When the installer is launched by a user with administrative privileges, it will create perfsonarUI start menu shortcuts for all the users registered in the target system. Otherwise, start menu shortcuts will be created only for the unprivileged user, who launched the installation.
After a successful installation, perfsonarUI could be launched from the Start Menu ("Start -> All Programs -> PerfSONAR -> PerfsonarUI-vX.YZ -> PerfsonarUI-vX.YZ").
Each version of perfsonarUI could be uninstalled either by using the "Control Panel -> Add or Remove Programs" or by clicking the "Uninstall" link located in "Start -> All Programs -> PerfSONAR -> PerfsonarUI-vX.YZ -> Uninstall-PerfsonarUI-vX.YZ". Any application files which may happen to be locked during the uninstall procedure would be deleted after the next reboot of the system. Java(TM) 2 Runtime Environment, Standard Edition would not be uninstalled by perfsonarUI's uninstaller. If needed, it could be uninstalled via its own entry in "Control Panel -> Add or Remove Programs".
Using PerfsonarUI
The perfsonarUI documentation is under development.
Meanwhile we provide here a brief outline (scenario) of common perfsonarUI usage:
Launch the application (step 01)
There are several alternative ways for launching perfsonarUI:
(requires Java (TM) 2 Runtime Environment, Standard Edition 1.5 or newer on the target system)
- Double-click the "perfSonarApp.jar" file, located in the "bin" application subfolder
(requires *.jar file association with Java)
- Execute the following command in a command line interface:
java -jar perfSonarApp.jar
The following command line options are supported:
-e, --endpoints <url> Use file at this url as a list of service addresses (default http://perfsonar.acad.bg/MA.conf)
-r, --visual <url> VisualPerfsonar URL (default https://noc-mon.srce.hr/visual_perf/)
-p, --parallel <number> Use -p1 to enable parallel queries or -p0 to disable parallel queries (default -p1)
-a, --aggregate <number> Number of aggregated requests in one Axis call (default -a8)
-h, --help Print list of supported options
-t, --timeout <milliseconds> Connection timeout in milliseconds (default -t300000)
You might also want to enable debugging output, by invoking the following command line switch:
java -Dperfsonar.debugging=true -jar perfSonarApp.jar
Be aware that switching on debugging output will create a (possibly huge) perfsonar.log file.
Here is an example command line for launching perfsonarUI-v0.09 with enabled debugging, disabled parallel queries and 4 aggregated requests per Axis call:
java -Dperfsonar.debugging=true -jar perfSonarApp.jar -p0 -a4
Select the Interfaces tab (step 02)
Select the RRD MA service(s)/endpoint(s) which will be queried by clicking on the "Service addresses" link. The dialog lists the available RRD MA service(s)/endpoint(s). Either one or several RRD MA services/endpoints could be selected. The "Service status" button enables checking service availability through exchange of EchoRequest/EchoResponse messages. Live data for the availability and response time status of the publicly accessible services is provided at the following address as well:
At present, the list of services is configured in the MA.conf file (1 row per service, CSV):
- service name - arbitrary string, shown in the endpoints dialog for user convenience;
- service URL;
- service XML schema;
- service authentication realm (currently not used);
- event type (in);
- event type (out);
An up-to-date version of MA.conf is available here:
PerfsonarUI-v0.09 (or newer) retrieves automatically the current MA.conf file from http://perfsonar.acad.bg/MA.conf by default
Run a query (step 03)
Select the time interval for summary through the radio buttons and then either:
- press the "Retrieve all" button in order to fetch all the interfaces from the previously selected RRD MA service(s)/endpoint(s);
- provide a list of IPv4/6 addresses and press the "Search" button in order to fetch interfaces with matching IPv4/6 addresses from the previously selected RRD MA service(s)/endpoint(s);
- paste the output of a traceroute command and press the "Search" button in order to fetch interfaces with matching IPv4/6 addresses from the previously selected RRD MA service(s)/endpoint(s);
Please note that some of the services respond rather slowly to queries. If a large number of RRD MA services/endpoints are selected and subsequently the "Retrieve all" functionality is used, the query could take up to several minutes to complete, regardless of the bandwidth of the users’ network connection. However, a running query could be stopped by simply pressing the same button, which has been used to start the query (the label of this button is changed to "Stop" during query execution). After query interruption, the application keeps/displays the data acquired so far.
While the application is doing some work or waiting for query completion the radar gif is animated. During such periods some of the buttons/links are not accessible.
Summary visualization (step 04)
Observe the load summary for all interfaces in the table, as well as in the bar chart. The bar chart summary represents an average over the previously selected time interval.
Select an interface (step 05)
Select an interface (either from the table or through the bar summary graph) for detailed load visualization. You could also sort the table/bar chart by clicking on the table column titles. The selected interface is highlighted both in the table and in the bar chart.
Time interval selection (step 06)
Select the time interval for the detailed interface load visualization. By default statistics for the last week are shown.
Browse the summary bar chart (step 07)
Each bar chart "page" consists of up to 30 interfaces. If the dataset contains more than 30 interfaces, the "first", "previous", "next" and "last" links provide means to navigate between pages.
View details for different interfaces/time intervals (step 08)
Repeat steps (05)-(07) for different interfaces/time intervals.
Run an update query (step 09)
Press the "Refresh" button in order to retrieve new data from the same RRD MA service(s)/endpoint(s).
Clear the workspace (step 10)
Press the "Clear" button in order to clean-up the table/charts before launching a different query.
Select different RRD MA service(s)/endpoint(s) (step 11)
Repeat steps (02)-(10) with a different set of RRD MA service(s)/endpoint(s).
Select the Circuits tab (step 12)
Run queries for various source/destination pairs, dates, packet sizes, group sizes, intervals, and precedence. The list of available source/destination pairs is configured in the Hades.conf file, located in the "bin" application subfolder. The location/parameters of the Hades MA service are defined in MA.conf, also located in the "bin" application subfolder.
An up-to-date version of Hades.conf is available here:
- Hades.conf (25 Sep 2006)
The JWS version of perfsonarUI as well as all newer versions starting with v0.09 do not need the Hades.conf file. Instead, they fetch the required data directly from the Hades service through exchanging MetadatKeyRequests and MetadataKeyResponses.
An up-to-date version of MA.conf is available here:
It lists the Hades MA service, deployed by DFN-Erlangen.
PerfsonarUI-v0.09 (or newer) retrieves automatically the current MA.conf file from http://perfsonar.acad.bg/MA.conf by default
Users can select various source/destination pairs, dates, packet sizes, group sizes, intervals, and precedences. If there is no data for the specific combination of parameters, an error message with hints for available similar data for the same source/destination pair and date would be displayed.
PerfsonarUI supports the "NMWG(v2) 2" and the older "perfsonar" XML (the later only up to version v0.08) schema. PerfsonarUI also supports the Hades MA, deployed by DFN-Erlangen. An up-to-date list of available MA RRD services is compiled at:
Live data for their availability and response time is available at the following address:
Screenshots
- PerfsonarUI-v0.09 Interfaces tab with radar and bar chart summaries of GEANT2 interfaces utilization
- PerfsonarUI-v0.09 Circuits tab with OWD, IPDV and packet loss details over a path from Bologna to Ljubljana
Contacts
You should send any comments, inquiries, bug reports, feature requests and other suggestions to Nina Jeliazkova <nina@acad.bg> or <perfsonar@acad.bg>
Feature requests
1) provide visualization for Hades traceroute measurements;
2) implement the capability to chose between the avg, max and min for the bar chart, provided that the RRD MAs return this data;
3) input error - output discard - possible display;
4) provide capability to delete selected web-services at the service address page;
5) provide capability to duplicate an entry at the service address space;
6) re-assess the capability to select a longer time interval at the Circuits tab;
7) re-assess the capability to select a different time interval without reloading the available measurements matrix at the Circuits tab;
8) provide capability to select a subset of columns at the Interfaces tab and keep this local preference after perfsonarUI reload;
9) use shorter column titles (e.g. "In %", "Out %", "In Kbps", "Out Kbps", "In Err", "Out drop";
10) show metrics in Kbps in order to reduce the number of digits;
11) provide an option to have the time selection buttons for detailed interface statistics above the graph;
12) provide a tooltip, explaining the semantics of the interface status column;
13) avoid empty space at the start/end of graphs;
14) provide options for a bigger summary radar chart and removal of the summary bar chart;
TO DO
- We plan to deliver the following new functionalities (Fxy) and enhancements (Exy) of perfsonarUI:
- F01: enable use of the deployed LS(es);
- F02: enable use of keys whenever possible/meaningful;
- F03: implement the necessary logic for generating on the fly the information, stored currently in MA.conf (depending on the availability of relevant LS deployment(s));
- F04: Loading plug-ins on demand, instead of the current automatic loading of all plug-ins on startup.
- E01: check/resolve the reported issue about inbound/outbound legend below all interfaces summary being not visible on Macintosh;
- E02: find a way to make the zoom function in Hades tab more obvious;
- E03: add zoom options to Hades tab, in order to enable separate zooms over the different axes;
- E04: investigate SOAP and DOM alternatives (e.g. Axis2) in order to improve performance;
- E05: keep displayed numbers sensible (e.g. capacity is a too long number), suggest for error rate use suffixes (M,k,m,u);
- E06: Suggest highlight any non-zero value for input drops and output errors. Would be good too to see total number of errors/drops for the sample period;
- E07: show/hide columns functionalities;
- E08: set order of columns (right-click column, select hide/show and order);
- E09: ability to select (check boxes) which of utilization, errors and drops are graphed.
- By the end of December 2008 we plan to:
- implement an interface for user preferences input and storage of those preferences;
- gather user feedback and implement suggested new functionalities, enhancements and bug fixes;
- improve/update the documentation;
- continue work on plug-in API;
Change log
- v0.12a - 26 June 2008:
- Lookup Service support;
- Traceroute in Interfaces tab can use global Lookup Service to retreieve services;
- v0.12 - 26 June 2008:
- AA enabled in all tabs;
- The IdP certificate is cached across all requests and tabs;
- new Looking Glass plugin;
- updated Circuits plugin to reflect the new Hades schema;
- added new option -mMDS, used to set the Metadata Service URL;
- improved error reporting;
- updated jnlp files;
- v0.11a - 11 Dec 2007:
- added a new menu option "Populate" added in Interfaces tab;
- added initial implementation of localisation support;
- made several spelling updates;
- enabled AA in the Playground tab;
- included several additional jars, required for AA support;
- added new option -sURL, used to retrieve and copy ClientSASLCA.jks to a local directory;
- updated jnlp files;
- updated code signing certificate:
Owner: EMAILADDRESS=nina@acad.bg, CN=Thawte Freemail Member
Issuer: CN=Thawte Personal Freemail Issuing CA, O=Thawte Consulting (Pty) Ltd., C=ZA
Serial number: 42e9c8b1fc5dcdf7530c07198fcb30ee
Valid from: Tue Oct 30 13:03:53 EET 2007 until: Wed Oct 29 13:03:53 EET 2008
Certificate fingerprints:
MD5: ED:64:80:58:9D:CF:25:BA:2C:98:D8:BE:F7:74:E3:81
SHA1: DB:87:6E:96:FB:CC:51:4B:A1:86:80:8B:4B:41:30:3C:0A:2F:69:A0
- fixed a bug in Echo response parsing;
- improved error reporting;
- fixed a bug in threads processing;
- v0.10 - 28 Oct 2007:
- added visualization of input errors and output drops;
- added valueUnits support for "Bps", "bps", "octets", "bytes" (utilization), "Eps" (errors), "Dps" (discards);
- improved error visualization (a red box at the bottom right serves as last error indication - click on the box to see more details);
- introduce chaining support;
- fixed the utilization graph at the bottom to report trailing NaNs as Null rather than 0;
- changed the default query aggregation level from 32 to 8;
- added dialog for changing -a and -p options on runtime;
- upgraded to jfreechart-1.0.6;
- upgraded to jcommon-1.0.10;
- upgraded to log4j-1.2.15.jar;
- reduced "Service status" timeout to 10 seconds;
- fixed "Service addresses" listing by service type bug;
- introduced support for "http://ggf.org/ns/nmwg/ops/select/2.0";
- introduced support for "http://ggf.org/ns/nmwg/characteristic/utilization/2.0";
- introduced support for "http://schemas.perfsonar.net/tools/admin/echo/2.0";
- introduced support for "http://schemas.perfsonar.net/2.0" configuration option in MA.conf;
- v0.09 - 26 Jan 2007:
- enabled Java Web Start distribution, code signed with a trusted (by default) certificate:
Owner: EMAILADDRESS=nina@acad.bg, CN=Thawte Freemail Member
Issuer: CN=Thawte Personal Freemail Issuing CA, O=Thawte Consulting (Pty) Ltd., C=ZA
Serial number: 3924b907b885136370455402fd4eb80f
Valid from: Sat Dec 02 20:46:12 EET 2006 until: Sun Dec 02 20:46:12 EET 2007
Certificate fingerprints:
MD5: 92:9C:1E:BD:4D:19:16:98:6C:70:F5:91:B5:45:19:7C
SHA1: DF:D8:83:FA:D5:59:85:C7:37:8E:A6:25:14:5A:E0:46:D5:6A:A2:E4
- improved user interface layout;
- changed the RRD MA and Hades tabs names to Interfaces and Circuits respectively;
- upgraded to Axis version 1.4;
- enabled sending of parallel requests to services;
- enabled sending of aggregated requests, containing queries for several endpoints in a given service;
- enabled MetadaKeyRequests/Responses in the interactions with Hades MA;
- implemented the necessary logic for generating on the fly the information, stored currently in Hades.conf;
- integrated support for retrieval and visualization of Ripe test data from Hades service;
- changed “packet count” to “packet loss” in the Circuits tab, third graph;
- added buttons in the Circuits tab for navigating in time (next day, etc);
- added a clear button to the Circuits tab;
- designed and implemented an animated perfSONAR gif image with a turning radar over the O symbol;
- implemented control over Axis timeouts and enabled dropping of requests;
- integrated support for linking with appropriate sections of VisualperfSONAR (https://noc-mon.srce.hr/visual_perf);
- added ability to import traceroute output from a file;
- added new and revised existing tooltips for buttons/graphs/links;
- introduced support for plug-ins;
- implemented Interfaces and Circuits tabs as plug-ins;
- removed “Detailed interface statistics” from the Circuits tab;
- removed “.000” from Circuits tab, third graph, as these are discrete values;
- enabled clear buttons to clear everything (including the search by interface IP window);
- enabled launching traceroute/tracert (depending on native OS) and automatic search/display of path utilization statistics;
- enabled checking and display of MA status (reachable/not reachable/response contents) by sending perfSONAR EchoRequests and processing of perfSONAR EchoResponses;
- disabled rounding of utilization percentage;
- enabled reporting of utilisation in Bps with comma separators every 3 digits (depending on regional settings);
- enabled aligning of numbers on the right of the columns in the summary table;
- added domain name column in summary table;
- added domain name in detailed interface statistics;
- added domain name in summary graphs and tooltips;
- fixed table sorting bug;
- added JavaDoc;
- improved error reporting for services which support result codes;
- enabled preserving of user selection for summary in Bps or % while the application is running;
- added Playground tab;
- added DemoPlugin (not displayed by default in perfsonarUI's tabs and intended as an example for developers of new plug-ins);
- v0.08 - 13 Jun 2006:
- resolved "double-click in summary bar/radar chart" bug;
- resolved several sorting bugs;
- resolved "disappearing legend in summary bar chart" bug;
- resolved refresh bug on RRD MA slider;
- changed bytes to bits in the last two columns of the RRD MA table;
- improved consistency with adopted terminology (e.g. rate->utilization);
- replaced all references to IPPM with Hades;
- enabled sending mid="0" queries to Hades MA by default;
- enabled visualization of Hades MA errors;
- enabled packet size, group size, interval, and precedence selection in Hades MA tab;
- various other small bug fixes and optimizations;
- v0.07 - 05 May 2006:
- added automatic installer for Windows platforms;
- added clickable summary radar chart with tooltips in RRD MA tab;
- several GUI improvements, suggested by user feedback;
- improved status bar for RRD MA;
- added status bar for Hades (IPPM) MA;
- added numbers to summary bar chart's X axis legend;
- resolved summary bar chart paging bug;
- resolved utilization/rate display switching bug;
- v0.06 - 03 Apr 2006:
- added Hades (IPPM) MA service support;
- v0.05 - 05 Mar 2006:
- changed the IPv4 and IPv6 address pattern matching regular expressions;
- IPv6 address pattern matching is now compatible with RFC 4291 (full, compressed and mixed textual representations should be recognized correctly);
- improved support for xmlns:netutil="http://ggf.org/ns/nmwg/characteristic/utilization/2.0/";
- v0.04 - 16 Feb 2006:
- changed MA.conf in order to re-enable sending queries to ESNET RRD MA (default setting);
- added support for xmlns:netutil="http://ggf.org/ns/nmwg/characteristic/utilization/2.0/";
- introduced new "NMWG2v2_netutil" value for MA.conf's 3rd field;
- changed MA.conf lines for ISTF and SWITCH RRD MAs;
- v0.03 - 13 Feb 2006:
- createSearchMetadataSection now adds "eventType" tag in the message (PIONIER's Java RRD MA implementation needs eventType tag in MetadataKeyReq, others work happily without it...);
- presentDataFromResponse - was looking for <data> tag instead of <nmwgnamespace:data>
changed
nodelist = dataSetupResp.getElementsByTagName(E_DATA);
to
nodelist = dataSetupResp.getElementsByTagNameNS(URI_nmwg[nmwg_version],E_DATA);
- added support for IPv6 searching and IPv6 traceroute parsing;
- added code to write response messages in the log file when debug is enabled;
- v0.02 - 08 Jan 2006:
- improved interface layout;
- added search by IP address capability;
- added traceroute output parsing;
- added support for RRD MA services using older XML schema;
- added ability to select more than one RRD MA service simultaneously;
- added ability to interrupt a running query;
- cleaned source code;
- added source code to the distribution;
- v0.01 - 8 Dec 2005:
- first public release of the perfsonarUI application;
