Performance and debugging visualization for DevStack and Tempest
Go to file
Ghanshyam Mann 0469f86182 [ussuri][goal] Update contributor documentation
This patch updates/adds the contributor documentation to follow
the guidelines of the Ussuri cycle community goal[1].

Story: #2007236
Task: #38554

Change-Id: I11f746df8ddfba5cf0b1e33778c9939a0a5fc760
2020-04-22 14:04:30 +00:00
app Fix dstat graph processing 2019-05-03 16:44:04 -06:00
doc [ussuri][goal] Update contributor documentation 2020-04-22 14:04:30 +00:00
gulp Have stackviz output a usable python sdist 2017-05-31 09:14:10 -04:00
releasenotes/notes [ussuri][goal] Drop python 2.7 support and testing 2020-02-03 13:27:16 -06:00
stackviz Treat subunit as binary under python3 2018-09-30 08:44:55 -07:00
test Add karma-subunit-reporter 2016-06-10 10:06:39 -06:00
.coveragerc Update .coveragerc after the removal of openstack directory 2016-11-03 19:33:33 +05:30
.eslintignore Switch to eslint. 2015-11-18 15:36:36 -07:00
.eslintrc.json Fix phantomjs package error and update eslint-config-openstack 2016-03-10 13:34:03 -07:00
.gitignore Merge "Add karma-subunit-reporter" 2019-05-31 06:33:34 +00:00
.gitreview OpenDev Migration Patch 2019-04-19 19:36:20 +00:00
.stestr.conf Use stestr as a test runner in tox 2019-05-02 17:17:09 -06:00
.zuul.yaml Switch to native Zuul v3 publish job 2020-03-03 16:16:38 +01:00
CONTRIBUTING.rst [ussuri][goal] Update contributor documentation 2020-04-22 14:04:30 +00:00
HACKING.rst Use updated hacking url link 2018-10-17 02:33:00 +00:00
LICENSE Add some missing base files from cookiecutter (LICENSE, manifest, setuptools config) 2015-08-03 09:11:51 -06:00 Have stackviz output a usable python sdist 2017-05-31 09:14:10 -04:00
README.rst Use py36 2019-05-25 17:06:18 +02:00
babel.cfg Add stub unit tests from cookiecutter 2015-08-03 10:37:55 -06:00
bindep.txt add python 3.6 unit test job 2018-09-12 18:00:05 +02:00
gulpfile.js Add initial Angular boilerplate files. 2015-09-25 16:26:44 -06:00
package.json Merge "Add karma-subunit-reporter" 2019-05-31 06:33:34 +00:00
requirements.txt Treat subunit as binary under python3 2018-09-30 08:44:55 -07:00
setup.cfg Cleanup py27 support 2020-04-07 18:41:04 +02:00 Cleanup py27 support 2020-04-07 18:41:04 +02:00
test-requirements.txt Update to hacking 3.0 2020-03-30 17:40:29 +02:00
tox.ini [ussuri][goal] Drop python 2.7 support and testing 2020-02-03 13:27:16 -06:00


Team and repository tags



A visualization utility to help analyze the performance of DevStack setup and Tempest executions. This repository can be cloned and built to use Stackviz with local run data. Stackviz is currently in the process of being implemented upstream (see Roadmap and Planning). To use Stackviz with upstream gate runs, please see the server deployment project at:


Installation - Frontend

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

Installation - Processing

The data processor is a small Python module located in the same source tree. To install, run:

sudo pip 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/

During gulp dev, files written to app/data/ will be automatically synchronized with the browser. Note that these files will not be copied to build/ during gulp prod, but you can copy them manually using gulp data.

Usage - Production

The production application can be build using:

gulp prod

This will automatically build portable html/javascript and python utilities into dist/stackviz-VERSION.tar.gz.

You should probably install this into a virtualenv on the target system:

virtualenv stackviz
./virtualenv/bin/pip install /path/to/stackviz-VERSION.tar.gz
# to run stackviz export

Note the required html will be placed in virtualenv/share/stackviz-html as a data-file (or elsewhere, if installed as a system package; this may vary on distributions). This can be moved as required. Note that all files in there 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/, js/ only required for debugging purposes.

Data should be written to stackviz-html/data/ using stackviz-export like above.


  • Python tests: tox -e py36
  • JavaScript unit tests: gulp unit
  • JavaScript E2E tests: gulp e2e

Manuals & Developer Docs

For more detailed information on how Stackviz works, please see the manuals located at doc/source/man/

Roadmap and Planning