Enable CSV logging output for DStat.
Future work toward visualization of DevStack and devstack-gate performance would benefit greatly from the availability of machine-parsable DStat output. This patch outputs an additional logfile to $LOGDIR, `dstat-csv.log`, using DStat's built-in CSV logging functionality. An additional instance of DStat is started during start_dstat that outputs to CSV-formatted text without `--top-cpu-adv` and `-top-io-adv` enabled, as these plugins are currently incompatible with CSV output. To facilitate this, a new `dstat.sh` script is added to $TOP_DIR/tools/ to act as a daemon to manage the two processes. Change-Id: I826c94c35b6a109308b4f132c181ff7a1f63bc7b Depends-On: I534fb1f9356a7948d2fec0aecc7f275e47362a11
This commit is contained in:
parent
5751017ae3
commit
a83e90b560
@ -19,8 +19,7 @@ set +o xtrace
|
|||||||
# start_dstat() - Start running processes, including screen
|
# start_dstat() - Start running processes, including screen
|
||||||
function start_dstat {
|
function start_dstat {
|
||||||
# A better kind of sysstat, with the top process per time slice
|
# A better kind of sysstat, with the top process per time slice
|
||||||
DSTAT_OPTS="-tcmndrylpg --top-cpu-adv --top-io-adv"
|
run_process dstat "$TOP_DIR/tools/dstat.sh $LOGDIR"
|
||||||
run_process dstat "dstat $DSTAT_OPTS"
|
|
||||||
|
|
||||||
# To enable peakmem_tracker add:
|
# To enable peakmem_tracker add:
|
||||||
# enable_service peakmem_tracker
|
# enable_service peakmem_tracker
|
||||||
|
32
tools/dstat.sh
Executable file
32
tools/dstat.sh
Executable file
@ -0,0 +1,32 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# **tools/dstat.sh** - Execute instances of DStat to log system load info
|
||||||
|
#
|
||||||
|
# Multiple instances of DStat are executed in order to take advantage of
|
||||||
|
# incompatible features, particularly CSV output and the "top-cpu-adv" and
|
||||||
|
# "top-io-adv" flags.
|
||||||
|
#
|
||||||
|
# Assumes:
|
||||||
|
# - dstat command is installed
|
||||||
|
|
||||||
|
# Retreive log directory as argument from calling script.
|
||||||
|
LOGDIR=$1
|
||||||
|
|
||||||
|
# Command line arguments for primary DStat process.
|
||||||
|
DSTAT_OPTS="-tcmndrylpg --top-cpu-adv --top-io-adv"
|
||||||
|
|
||||||
|
# Command-line arguments for secondary background DStat process.
|
||||||
|
DSTAT_CSV_OPTS="-tcmndrylpg --output $LOGDIR/dstat-csv.log"
|
||||||
|
|
||||||
|
# Execute and background the secondary dstat process and discard its output.
|
||||||
|
dstat $DSTAT_CSV_OPTS >& /dev/null &
|
||||||
|
|
||||||
|
# Execute and background the primary dstat process, but keep its output in this
|
||||||
|
# TTY.
|
||||||
|
dstat $DSTAT_OPTS &
|
||||||
|
|
||||||
|
# Catch any exit signals, making sure to also terminate any child processes.
|
||||||
|
trap "kill -- -$$" EXIT
|
||||||
|
|
||||||
|
# Keep this script running as long as child dstat processes are alive.
|
||||||
|
wait
|
Loading…
Reference in New Issue
Block a user