From e0b08d04ab41f9aca96997c87bd9fa13feba2536 Mon Sep 17 00:00:00 2001 From: Joe Gordon Date: Wed, 20 Aug 2014 00:34:55 -0700 Subject: [PATCH] Pull dstat logic into its own function so grenade can use it In order to use dstat on the new side of grenade, pull dstat code into its own lib with the function start_dstat Change-Id: I5c908d594a6f3a90ed4b3f744002bf606841cf07 --- lib/dstat | 41 +++++++++++++++++++++++++++++++++++++++++ stack.sh | 11 ++--------- unstack.sh | 2 ++ 3 files changed, 45 insertions(+), 9 deletions(-) create mode 100644 lib/dstat 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