Skip to content

WebUIGuide

Jeff Squyres edited this page Sep 3, 2014 · 1 revision

MTT Web User Interface Guide

This page details the new web user interface to the MTT results. The web user interface is a front-end to the central Postgres database which stores all the MTT results. In short, this tool simply allows you to quickly and intuitively compose SQL queries for the MTT database.

The Query Screen

The Query Screen is an always-visible user-input mechanism that is displayed atop every report. It does not require frames. (Screenshot)

Phase Radio Buttons

The MTT client submits data to the database on three of its phases. An individual result for each phase represents the following:

  1. MPI Install - the configure and make commands to compile Open MPI
  2. Test Build - the configure and/or make command to compile a test suite
  3. Test Run - the mpirun command to run a single test case

Clicking a phase radio button adds a few phase relevant input fields to the Query Screen and a few phase relevant columns to the report.

Text Fields

Text fields can be filled in manually, using selection menus, and are auto-filled between invocations of reporter.php (e.g., after clicking drilldown links, see Summary tables). They can contain regular expressions. Inserting a - at the start of a token in the text field will effect a search on the negation of that search string. For example:

foo bar -baz

will search for values that contain "foo" and "bar", but not "baz".

Date Range Field

The Date range field can be filled in manually, using selection menus, and are auto-filled between invocations of reporter.php (e.g., after clicking drilldown links, see Summary tables). The format they use is one of the following:

  1. "YYYY-MM-DD [HH:MM:SS] - YYYY-MM-DD [HH:MM:SS]" ["YYYY-MM-DD [HH:MM:SS] - YYYY-MM-DD [HH:MM:SS]"] ...
  2. Past n interval

Where n is an integer and interval is one of the following:

  • microseconds
  • milliseconds
  • second
  • minute
  • hour
  • day
  • week
  • month
  • quarter
  • year
  • decade
  • century
  • millennium

Quoted tokens allow for non-contiguous date ranges. E.g., the below will return results from the first week of October and November:

"2008-10-01 - 2008-10-07" "2008-11-01 - 2008-11-07"

The Date Range field has no show/hide menu next to it. The show/hide equivalent is available as a second menu in the selection popup containing options like "by day", "by hour", "by minute", etc. Selecting "by interval" will add a Date Range column grouped according to the interval selection.

Selection Menus

Selection menus next to each text field are just a way to enter search strings using the mouse, instead of the keyboard. Initially, these menus are populated with all the available entries in the database. After clicking a report button (Summary, Detail, or Performance), these menus no longer contain all the available entries, but only the entries in the displayed report.

Show/Hide Menus

Show/Hide menus show and hide columns in reports. Hiding a column does not remove data points from a report, but rather renders the data with the hidden column aggregated. Date Range is an oddball field in that there is no show/hide menu next to it (see the above Date range field section).

Special Large Fields

Special large fields can be identified in reporter.php as the text fields not having an adjacent Show/Hide menu. (They are Stdout, Stderr, Environment, Result message, Configure arguments, and Command). They are handled differently than other fields due to their being too large to display in a Summary table. For example, if you type a regular expression into the Command text field, the first pattern that matches the expression is captured and will show up in the Summary table. Thus, you can type e.g., tcp|openib into the Command field and there will be a Command column differentiating the rows by displaying the occurrence of the pattern tcp or openib in the mpirun command.

Query Screen Buttons

The Reporter can generate three types of reports:

  1. '''Summary''' is the highest level view.
  2. '''Detail''' is the lowest level view. It displays large text fields (e.g., stdout, stderr, configure arguments, etc.) that can not fit into the columns of a Summary table.
  3. '''Performance''' is a Summary table plus a graph(s) of any latency and/or bandwidth results. min, max, and avg data is broken up into separate graphs.

Preferences

The [Preferences] link (see next to the Performance button) opens up a window which allows the saving of preferences to a cookie. This means that preferences will persist until the browser's cookies are cleared, or until the Preferences are changed by the user. (An open [ticket:169 ticket] exists because the Safari browser for Mac has some issues with this feature).

General

  • Max rows per page (default: 100) Sets the number of rows per page in Summary view
  • Text wrap (in Detail) (default: 100) Wraps text in Detail view
  • Time zone (default: GMT) Timestamps will be displayed in the time zone you select
  • Show trial runs (default: off) If checked, trial results (test results created when the MTT client is invoked with the --trial flag) are displayed. Trial results are darkened and italicized.

Graphing

  • Y-axis scale
  • X-axis scale Axes can be scaled either in linear or logarithmic fashion.

Advanced Menu

Next to the Preferences menu is an [Advanced] menu which contains all the fields in the database that are applicable to the current phase selection which are not displayed in the main Query Screen. They are handled similarly to form controls on the main Query Screen.

Report types

There are three types of reports that each correspond to a button in the Query Screen:

  1. Summary Tables
  2. Detail Tables
  3. Performance Graphs

Summary Tables

The MTT Web User Interface is setup to give the user the ability to whittle a large chunk of test results down to the details of a given failure(s). With that in mind, each item of data in the Summary tables is itself clickable to reach another drilled down Summary table.

  • Drilldown links
  1. Phase headers (MPI install, Test build, Test run) This is a shortcut to a phase-specific report with existing filters maintained.
  2. Result headers (Pass, Fail, Skip, Timed, and Perf) This is a shortcut to a phase-specific report, plus filtered by result type, with existing filters maintained.
  3. White parameter cells Refreshes the report, applying the '''(column, value)''' pair filter.
  4. Colored result cells Refreshes the report, applying each and every '''(column, value)''' pair filter in the whole row to the report.
  • Sorting arrows ( ) The left-to-right layout of the columns is the sorting order. E.g., if the reports displays the columns Org and Hardware from left to right, then the results are sorted first by Org, and then by Hardware. The exception to this rule is when an up/down sorting arrow is clicked in the table header. Sorting arrows refresh the report with the given table header as the primary ascending/descending sort key. E.g., if the report displays columns Org, Hardware, and then {{{MPI version}}} from left to right. And the down arrow next to MPI version is clicked, then the report will refresh sorted by MPI version (descending), then by Org, and then by Hardware.
  • Report slice links (next n rows) Large reports are broken down into tables of n rows (determined by user preference, and defaulting to 100).
  • Cherry picking The cherry button () is a special feature only available in Performance mode. It allows the user to select/unselect rows in the Summary table. It is useful for honing in on specific line plots in a performance graph.

Detail Tables

Detail tables display everything in the Summary tables, plus some additional fields. They are formatted to allow large text fields (e.g., stdout, stderr, configure arguments, etc.), and are color coded similarly to Summary tables.

Performance Graphs

The easiest way to get to performance data is to click on the Perf header in a Summary table (the far right column) or a blue table cell in a Summary table. This will bring you to a report of Test run results in which each contains Performance results (note that the Performance button is only enabled in Test run mode when there are performance results). Clicking the Performance button will then show you some graphs.

Performance graphs always display below a Summary table. Each row of the Summary table corresponds to a single line plot in the Performance graph (hence the row numbers in the legend). The subtitle for the graph is created based on columns that are identical across all line plots. The remaining entries for each line plot make up the legend. Graphs are output in JPEG format, and raw data is available in HTML and CSV format. (Note: the CSV dumps are kept around for 1 hour. Refresh your browser to recreate an expired CSV link.)

Performance graphs are created using Jpgraph.

Permalinks

A report's state is maintained from invocation to invocation by way of the URL's query string (everything trailing the '''?''' in the browser's address bar). This is useful in carrying over filters when whittling down a report, transitioning from one phase to the next, or lastly - to create a permalink. Since the query string can grow to absurd character lengths, the Create permalink links offer a way to create a tiny link from a long link. tiny links are more sensible over email or AIM. The tiny link is merely a redirect to the long link. ''There are also commercial URL redirection services (e.g., www.tinyurl.com).''

Permalinks can be created in two ways:

  1. Absolute date range - links to an exact replica of the report (the exception is that trial data can get expired out of the database, in which case those rows can go away after x number of days)
  2. Relative date range - links based on a range relative to right now (e.g., past 24 hours)

Feedback

Unaccommodated use cases? Ideas for more preferences? Browser incompatibilities?

E-mail the [email protected] list with questions and comments.