Skip to content

Commit

Permalink
Allow to enable atop
Browse files Browse the repository at this point in the history
It may be required to troubleshoot performance related bugs during
tests exection, to have ability to inspect environment processes
and theirs status during test run this patch installs atop
by default if not explicitly disabled.

Related-Bug: #2095224

Change-Id: Iedbd61f3ce3cd2255ea5f2a7a93ba2f39ad28ff2
  • Loading branch information
jumpojoy committed Feb 19, 2025
1 parent 3cddf9f commit 1aac81e
Show file tree
Hide file tree
Showing 4 changed files with 61 additions and 0 deletions.
1 change: 1 addition & 0 deletions .zuul.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -357,6 +357,7 @@
'{{ devstack_conf_dir }}/.localrc.auto': logs
'{{ devstack_conf_dir }}/.stackenv': logs
'{{ devstack_log_dir }}/dstat-csv.log': logs
'{{ devstack_log_dir }}/atop': logs
'{{ devstack_log_dir }}/devstacklog.txt': logs
'{{ devstack_log_dir }}/devstacklog.txt.summary': logs
'{{ devstack_log_dir }}/tcpdump.pcap': logs
Expand Down
48 changes: 48 additions & 0 deletions lib/atop
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
#!/bin/bash
#
# lib/atop
# Functions to start and stop atop

# Dependencies:
#
# - ``functions`` file

# ``stack.sh`` calls the entry points in this order:
#
# - configure_atop
# - install_atop
# - start_atop
# - stop_atop

# Save trace setting
_XTRACE_ATOP=$(set +o | grep xtrace)
set +o xtrace

function configure_atop {
cat <<EOF | sudo tee /etc/default/atop >/dev/null
# /etc/default/atop
# see man atoprc for more possibilities to configure atop execution
LOGOPTS="-R"
LOGINTERVAL=${ATOP_LOGINTERVAL:-"30"}
LOGGENERATIONS=${ATOP_LOGGENERATIONS:-"1"}
LOGPATH=$LOGDIR/atop
EOF
}

function install_atop {
install_package atop
}

# start_() - Start running processes
function start_atop {
start_service atop
}

# stop_atop() stop atop process
function stop_atop {
stop_service atop
}

# Restore xtrace
$_XTRACE_ATOP
7 changes: 7 additions & 0 deletions stack.sh
Original file line number Diff line number Diff line change
Expand Up @@ -641,6 +641,7 @@ source $TOP_DIR/lib/swift
source $TOP_DIR/lib/neutron
source $TOP_DIR/lib/ldap
source $TOP_DIR/lib/dstat
source $TOP_DIR/lib/atop
source $TOP_DIR/lib/tcpdump
source $TOP_DIR/lib/etcd3
source $TOP_DIR/lib/os-vif
Expand Down Expand Up @@ -1093,6 +1094,12 @@ save_stackenv $LINENO
# A better kind of sysstat, with the top process per time slice
start_dstat

if is_service_enabled atop; then
configure_atop
install_atop
start_atop
fi

# Run a background tcpdump for debugging
# Note: must set TCPDUMP_ARGS with the enabled service
if is_service_enabled tcpdump; then
Expand Down
5 changes: 5 additions & 0 deletions unstack.sh
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,7 @@ source $TOP_DIR/lib/swift
source $TOP_DIR/lib/neutron
source $TOP_DIR/lib/ldap
source $TOP_DIR/lib/dstat
source $TOP_DIR/lib/atop
source $TOP_DIR/lib/etcd3

# Extras Source
Expand Down Expand Up @@ -174,6 +175,10 @@ fi

stop_dstat

if is_service_enabled atop; then
stop_atop
fi

# NOTE: Cinder automatically installs the lvm2 package, independently of the
# enabled backends. So if Cinder is enabled, and installed successfully we are
# sure lvm2 (lvremove, /etc/lvm/lvm.conf, etc.) is here.
Expand Down

0 comments on commit 1aac81e

Please sign in to comment.