#!/bin/bash # # lib/dstat # Functions to start and stop dstat # Dependencies: # # - ``functions`` file # ``stack.sh`` calls the entry points in this order: # # - start_dstat # - stop_dstat # Save trace setting XTRACE=$(set +o | grep xtrace) set +o xtrace # Defaults # -------- # for DSTAT logging DSTAT_FILE=${DSTAT_FILE:-"dstat.log"} # start_dstat() - Start running processes, including screen function start_dstat { # A better kind of sysstat, with the top process per time slice DSTAT_OPTS="-tcmndrylpg --top-cpu-adv --top-io-adv" if [[ -n ${LOGDIR} ]]; then screen_it dstat "cd $TOP_DIR; dstat $DSTAT_OPTS | tee $LOGDIR/$DSTAT_FILE" if [[ -n ${SCREEN_LOGDIR} && ${SCREEN_LOGDIR} != ${LOGDIR} ]]; then # Drop the backward-compat symlink ln -sf $LOGDIR/$DSTAT_FILE ${SCREEN_LOGDIR}/$DSTAT_FILE fi else screen_it dstat "dstat $DSTAT_OPTS" fi } # stop_dstat() stop dstat process function stop_dstat { # dstat runs as a console, not as a service, and isn't trackable # via the normal mechanisms for devstack. So lets just do a # killall and move on. killall dstat || /bin/true } # Restore xtrace $XTRACE