hyperSPI++ Readme, v2.0

HyperSPI-plus-plus generates VMS System Performance Information HTML documents. It can profile, complete with graphics, fundamental system performance indicators as CPU usage, memory usage, IO values. It works extremely well. Here are examples of its output; CPU Usage and Memory usage, along with information on its capabilities.


License

This software comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to redistribute it under the conditions of the original license, with some portions available under the GNU GENERAL PUBLIC LICENSE, version 2.

Copyrights exist on parts of the charting library and may have different distibution licenses. All are provided "as-is" and are freely available for unrestricted use.


Description

HyperSPI++ comprises two distinct applications.

  1. Data Collection Agent -  HYPERSPIXX$AGENT.C  This is the System Performance Information collection agent for the Hypertext SPI facility. It executes on selected nodes, writing selected system performance information into a data file, once every minute. Data collection has negligable impact on system performance. The data contains per-minute average and total values (depending on the datum), and peak values based on the granularity of whatever is the collection period (currently 2 seconds). These data files are kept on a per-day basis. This data may then be processed and displayed by the Hypertext SPI facility. It utilizes the undocumented EXE$GETSPI interface. Interface details plagiarized (and extensively reworked) from a VMS X Window System utility named SPI.

  2. Data Presentation Application -  HYPERSPIXX.C  This application is executed as a CGI script. It operates in two distinct modes, text and graphic. In text mode it returns an HTML stream to the browser comprising a hypertext page, with selection menu, node performance presentation page, data listing or dump page. In graphic mode it returns a GIF image to the browser, first processing the specified data into an in-memory bitmap graph, then sending this image to the client via an internal GIF processor.

    A mapping rule should be included in the HTTPD$MAP configuration file:

      script /hyperspi++* /cgi-bin/hyperspixx*
    

    Quick links to selected reports can be useful:

      Graphical
      <A HREF="/HyperSpi">performance information</A>
      for selected VMS compute servers.
      <BR>Since 7am today:
      <A HREF="/HyperSpi?list_node=SYSTEM&period=until_now&cpu=yes&memory=yes&hard_faults=yes&do=page">SYSTEM</A>
      <BR>Since yesterday:
      <A HREF="/HyperSpi?list_node=SYSTEM&period=since_yesterday&cpu=yes&memory=yes&hard_faults=yes&do=page">SYSTEM</A>
      <BR>The last week:
      <A HREF="/HyperSpi?list_node=SYSTEM&period=7&cpu=yes&memory=yes&hard_faults=yes&do=page">SYSTEM</A>
    

Note that the startup and run-time procedures WILL require some modification.

The collection agent be must started up on all nodes for which information is required. The logical name HYPERSPI$DATA locates where the data is recorded and read from. It is important this data is cleaned-up occasionally. It uses approximately 315 blocks (160Kbytes) per day per system. The HYPERSPIXX$STARTUP.COM procedure provides an example startup.


Building hyperSPI++

This initial version of hyperSPI++ (v2.0) has not been extensively deployed and so in some respects the build should be considered a BETA! It does compile cleanly under "Compaq C V6.2-008 on OpenVMS Alpha V7.2-1" and "Compaq C V6.2-003 on OpenVMS VAX V7.2". Outside of these your milage may vary.

Some installation and configuration will be required for the data collection agent and for the presentation script. See "Description" above.

This version has been tested under WASD. It should also operate under OSU (DECthreads), VMS Apache (although the current version 1.3.12 has some issues with binary (.e.g image output) from scripts), and Purveyor.

HyperSPI++ seems to be fairly sensitive to the EXE$GETSPI() system call (probably not unreasonably) and may need at-the-least relinking depending on the exact VMS version. It was developed and tested on 6.n systems, and works with 7.1 and 7.2  After operating system upgrades the HYPERSPIXX$AGENT may required a relink (@BUILD_HYPERSPIXX$AGENT LINK).


Contact

Problem reports, bugfixes, notices of usage should be provided to Jean-François Piéronne  (jfp@altavista.net)  in the first instance.

This package is available for download from