
This adds a new UI for searching and filtering through tests in a timeline. A new dropdown for filter options is added to the timeline panel header, where users can query and select tests based on name and metadata (pass/fail/skip). A list of results is displayed which can be selected from directly, but results are also highlighted on the timeline directly. Some rearchitecting of the HTML layout for the timeline directive was needed to allow part of the timeline to be inside a panel header, so the entire panel layout was moved inside the timeline directive. A new `filterFunction` field was added to the main timeline controller to support communicating the filtering parameters to other components of the timeline. Additionally, a new `contextClass` filter was added to avoid excessive code duplication for highlighting element color based on test status - existing uses were replaced with this. Change-Id: I5f35091ab2b605e0821125e79de47c4c6067f644
StackViz: Angular
A visualization utility to help analyze the performance of DevStack setup and Tempest executions.
Installation
Installation of the frontend requires Node.js and Gulp. On Ubuntu:
sudo apt-get install nodejs npm nodejs-legacy
sudo npm install -g gulp
Then, install the Node modules by running, from the project directory:
npm install
Usage - Development
A development server can be run as follows:
gulp dev
This will open a web browser and reload code automatically as it changes on the filesystem.
If you have subunit and dstat logs, you can create a config.json to display your runs:
stackviz-export -f <path/to/subunit> --dstat <path/to/dstat> app/data/
Usage - Production
The production application can be build using:
gulp prod
The result will be written to ./build
and should be
appropriate for distribution. Note that all files are not required:
- Directory structure (
js/
,css/
,fonts/
,images/
): required. - Static resources (
fonts/
,images/
): required. - Core files (
index.html
,js/main.js
,css/main.css
): required unless gzipped versions are used. - Gzipped versions of core files (
*.gz
): not required, but preferred. Use instead of plain core files to save on disk usage and bandwidth. - Source maps (
js/main.js.map
,js/main.js.map.gz
): only required for debugging purposes.
Roadmap
Project split: All server-side components will be removed, and replaced with specialized data transformation tools.
- - Data sources and processing: stackviz Python project, with
-
stackviz-export used to generate JSON data files and configuration.
- Web interface:
- Will remain in this namespace
(
openstack-qa/stackviz
). - Will decouple data processing from build process, allowing for distribution to nodes as a prebuilt static site.
- Data sources will be configured in a
config.json
. - Will support local and remote sources via REST/JSONP (pending API spec).
- Will remain in this namespace
(
Upstream Implementation: https://etherpad.openstack.org/p/BKgWlKIjgQ