QA checklist for bundled webapps == general == These are interactive web applications, so not well suited to automated batch testing. Among the complications: - different browsers have different rendering engines / bugs - different user preferences (fonts, window sizes) - performance (interactivity) - memory usage (absence of leaks) - interactive reconfigurations - server-side dependencies (available data sets, running services) This adds up to many degrees of freedom, more than we can hope to test. But we can do a few things: - try several mainstream web browsers (firefox, webkit (epiphany/konqueror/chrome/safari), msie) for a smoke-test of the out-of-the-box webapp experience, namely hitting the top level index.html file, then each webapp "quick-launch link", and confirming that the views successfully load & look acceptable - increase pmwebd logging (-v in /etc/pcp/pmwebd/pmwebd.options) == blinkenlights == - tweak the refresh-interval slider to observe timely refreshes - add other predicates such as "kernel.all.nprocs < 5" and "kernel.all.nprocs >= 5" to confirm calculation polarities - test "local" connection; kernel.* metrics should stay resolveable - test a remote pmcd hostspec, if available; metrics should change value but stay alive - check pmwebd.log to see new contexts coming, old ones expiring == graphite == - ensure some local pmlogger and/or pmmgr data is already available, ideally from more than one host - initial view should show "no data in range" as no metrics were selected - exercise the metric tree browser - under tree tab, a voluminous but fast-responding navigable tree should appear - pick metrics from a timewise-recent archive to populate the composer - (archives for any given host tend to be sorted in increasing-time order) - unpick some; the curves should come & go - use "Search" function; type in regular expression (not glob), observe matches below (filtered from complete list of all archive X metric combinations) - use "Auto-Completer" function; widen the split pane, since metric names get very long; incrementally type in parts of the archive file name / metrics, with or without wildcards; note dropdowns of partial matches - exercise the composer window - click "graph data" in composer widget to see actual metrics - edit one of the metrics selected to replace the first component (archive-path) with a wildcard (*). This requires clicking outside the wildcard-expanded dropdown, and manually hitting the "OK" button instead; the graph should show corresponding metric curves from other hosts - hit "update graph" in composer (top left) a couple of times over some minutes to see time go; activate "auto-refresh" to let it happen automatically - change the selected time range with "select date range" and/or "select recent data" selectors. Note intervals in units larger than "week" are not supported by pmwebd (since a month has no fixed number of seconds) - hit the "open in graphlot" button for this other miniwebapp - timewise zoom in by dragging over grid - unzoom by "clear zoom" at far bottom right - add extra metrics/wildcards == grafana - png & flot.js modes == - ensure some local pmlogger and/or pmmgr data is already available - check all graphs come around in reasonable time (1-30 seconds) - on png rendering mode, check legends/labels are readable & apropos - on flot.js rendering mode, check popups when cursor on curves - resize browser window; graphs should resize - check time zoom-in (random interesting time slice) - on png rendering mode, time selection bar is the top thin graph - check time zoom-out - menu bar zoom-out or "last 30d" and beyond for maximum archive scaning burden - check pmwebd.log for plausible metric-digestion times bonus: - try adding and/or removing metrics from a graph via the interactive editor - try changing visual preferences (color schemes, legend activation) == vector == - check that default widgets (for localhost pmwebd & pmcd) are alive, producing updates every few seconds - check popups as cursor hovers over charts - change the interval to slow down or speed up data collection - change "window" (data-retention duration) to extend or shorten history - delete some widgets; add some back - drag some widgets around - test hostname/hostspec control by connecting webapp to another pmcd ("hostspec") and/or another pmwebd ("hostname"); actual pmcd.hostname should show up - resize window; graphs should resize - test out embed mode ..../vector/index.html#/embed?host=....&hostspec=localhost&widgets=kernel.all.cpu - check pmwebd logs (-v -v) that traffic is sensible (good rate, needed metrics only) - start/stop some containers (docker run --rm -t -i busybox /bin/sh) add container metric widgets, set a container name filter, observe graphs following