Performance and debugging visualization for DevStack and Tempest
Go to file
Austin Clark bd6e4a2a96 Fix phantomjs package error and update eslint-config-openstack
Patches prior to this failed the `npm run lint` and `gulp unit` gate
tests due to a new versioning of eslint-config-openstack and renaming
of the phantomjs browser to `phantomjs-prebuilt`. This patches updates
the necessary deps in package.json so that gate tests can now run
successfully.

Change-Id: I8ad54b29d91801d09991496b1e5eb90680ace8e3
2016-03-10 13:34:03 -07:00
app Fix lint errors and update eslint 2016-02-04 13:52:12 -07:00
doc/source Convert README to rst, and add documentation template from cookiecutter 2015-08-03 10:15:34 -06:00
gulp Removed unused node dependencies. 2015-11-24 13:48:47 -07:00
stackviz Show last two traceback lines in failure summary stats 2016-01-19 12:44:34 -07:00
test Fix lint errors and update eslint 2016-02-04 13:52:12 -07:00
.coveragerc Change ignore-errors to ignore_errors 2015-09-21 14:55:37 +00:00
.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 Remove all Django-related functionality. 2015-09-30 13:25:30 -06:00
.gitreview Add .gitreview file 2015-09-14 15:59:30 -06:00
.testr.conf Add more test cookiecutter template items 2015-08-03 11:26:08 -06:00
CONTRIBUTING.rst Add more test cookiecutter template items 2015-08-03 11:26:08 -06:00
HACKING.rst Add .gitignore entries, HACKING.rst, and __init__.py contents from cookiecutter 2015-08-03 10:01:01 -06:00
LICENSE Add some missing base files from cookiecutter (LICENSE, manifest, setuptools config) 2015-08-03 09:11:51 -06:00
MANIFEST.in Include bower components during `setup.py install`, and use properly use relative static directory during export. 2015-08-13 14:45:09 -06:00
README.rst Update README.rst to include Python and testing instructions. 2016-01-11 11:08:09 -07:00
babel.cfg Add stub unit tests from cookiecutter 2015-08-03 10:37:55 -06:00
gulpfile.js Add initial Angular boilerplate files. 2015-09-25 16:26:44 -06:00
package.json Fix phantomjs package error and update eslint-config-openstack 2016-03-10 13:34:03 -07:00
requirements.txt Remove all Django-related functionality. 2015-09-30 13:25:30 -06:00
setup.cfg remove python 2.6 trove classifier 2015-12-23 01:31:16 +00:00
setup.py Add some missing base files from cookiecutter (LICENSE, manifest, setuptools config) 2015-08-03 09:11:51 -06:00
test-requirements.txt Add stub unit tests from cookiecutter 2015-08-03 10:37:55 -06:00
tox.ini py26/py33 are no longer supported by Infra's CI 2015-12-26 14:39:24 +05:30

README.rst

StackViz

A visualization utility to help analyze the performance of DevStack setup and Tempest executions.

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

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.

Data should be written to build/data/ using stackviz-export like above. Note that the static production code generated above is portable, and can be generated anywhere and copied to another host to be combined with exported data.

Testing

  • Python tests: tox -epy27
  • JavaScript unit tests: gulp unit
  • JavaScript E2E tests: gulp e2e

Roadmap and Planning