diff --git a/lib/dstat b/lib/dstat new file mode 100644 index 0000000000..a2c522c02a --- /dev/null +++ b/lib/dstat @@ -0,0 +1,41 @@ +# lib/apache +# 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.txt"} + + +# start_dstat() - Start running processes, including screen +function start_dstat { + # A better kind of sysstat, with the top process per time slice + DSTAT_OPTS="-tcmndrylp --top-cpu-adv" + if [[ -n ${SCREEN_LOGDIR} ]]; then + screen_it dstat "cd $TOP_DIR; dstat $DSTAT_OPTS | tee $SCREEN_LOGDIR/$DSTAT_FILE" + else + screen_it dstat "dstat $DSTAT_OPTS" + fi +} + +# stop_dstat() stop dstat process +function stop_dstat { + screen_stop dstat +} + +# Restore xtrace +$XTRACE diff --git a/stack.sh b/stack.sh index 6c4bde7ab5..5ddfaef7b1 100755 --- a/stack.sh +++ b/stack.sh @@ -323,9 +323,6 @@ SYSLOG=`trueorfalse False $SYSLOG` SYSLOG_HOST=${SYSLOG_HOST:-$HOST_IP} SYSLOG_PORT=${SYSLOG_PORT:-516} -# for DSTAT logging -DSTAT_FILE=${DSTAT_FILE:-"dstat.txt"} - # Use color for logging output (only available if syslog is not used) LOG_COLOR=`trueorfalse True $LOG_COLOR` @@ -369,6 +366,7 @@ source $TOP_DIR/lib/heat source $TOP_DIR/lib/neutron source $TOP_DIR/lib/baremetal source $TOP_DIR/lib/ldap +source $TOP_DIR/lib/dstat # Extras Source # -------------- @@ -948,12 +946,7 @@ init_service_check # ------- # A better kind of sysstat, with the top process per time slice -DSTAT_OPTS="-tcmndrylp --top-cpu-adv" -if [[ -n ${SCREEN_LOGDIR} ]]; then - screen_it dstat "cd $TOP_DIR; dstat $DSTAT_OPTS | tee $SCREEN_LOGDIR/$DSTAT_FILE" -else - screen_it dstat "dstat $DSTAT_OPTS" -fi +start_dstat # Start Services # ============== diff --git a/unstack.sh b/unstack.sh index fe5fc77cd2..0457ef2393 100755 --- a/unstack.sh +++ b/unstack.sh @@ -162,6 +162,8 @@ if is_service_enabled trove; then cleanup_trove fi +stop_dstat + # Clean up the remainder of the screen processes SCREEN=$(which screen) if [[ -n "$SCREEN" ]]; then