Merge "Add service to tcpdump during run"
This commit is contained in:
commit
358cc122c3
@ -232,6 +232,7 @@
|
|||||||
'{{ devstack_log_dir }}/dstat-csv.log': logs
|
'{{ devstack_log_dir }}/dstat-csv.log': logs
|
||||||
'{{ devstack_log_dir }}/devstacklog.txt': logs
|
'{{ devstack_log_dir }}/devstacklog.txt': logs
|
||||||
'{{ devstack_log_dir }}/devstacklog.txt.summary': logs
|
'{{ devstack_log_dir }}/devstacklog.txt.summary': logs
|
||||||
|
'{{ devstack_log_dir }}/tcpdump.pcap': logs
|
||||||
'{{ devstack_full_log}}': logs
|
'{{ devstack_full_log}}': logs
|
||||||
'{{ stage_dir }}/verify_tempest_conf.log': logs
|
'{{ stage_dir }}/verify_tempest_conf.log': logs
|
||||||
'{{ stage_dir }}/apache': logs
|
'{{ stage_dir }}/apache': logs
|
||||||
|
46
doc/source/debugging.rst
Normal file
46
doc/source/debugging.rst
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
=====================
|
||||||
|
System-wide debugging
|
||||||
|
=====================
|
||||||
|
|
||||||
|
A lot can go wrong during a devstack run, and there are a few inbuilt
|
||||||
|
tools to help you.
|
||||||
|
|
||||||
|
dstat
|
||||||
|
-----
|
||||||
|
|
||||||
|
Enable the ``dstat`` service to produce performance logs during the
|
||||||
|
devstack run. These will be logged to the journal and also as a CSV
|
||||||
|
file.
|
||||||
|
|
||||||
|
memory_tracker
|
||||||
|
--------------
|
||||||
|
|
||||||
|
The ``memory_tracker`` service periodically monitors RAM usage and
|
||||||
|
provides consumption output when available memory is seen to be
|
||||||
|
falling (i.e. processes are consuming memory). It also provides
|
||||||
|
output showing locked (unswappable) memory.
|
||||||
|
|
||||||
|
tcpdump
|
||||||
|
-------
|
||||||
|
|
||||||
|
Enable the ``tcpdump`` service to run a background tcpdump. You must
|
||||||
|
set the ``TCPDUMP_ARGS`` variable to something suitable (there is no
|
||||||
|
default). For example, to trace iSCSI communication during a job in
|
||||||
|
the OpenStack gate and copy the result into the log output, you might
|
||||||
|
use:
|
||||||
|
|
||||||
|
.. code-block:: yaml
|
||||||
|
|
||||||
|
job:
|
||||||
|
name: devstack-job
|
||||||
|
parent: devstack
|
||||||
|
vars:
|
||||||
|
devstack_services:
|
||||||
|
tcpdump: true
|
||||||
|
devstack_localrc:
|
||||||
|
TCPDUMP_ARGS: "-i any tcp port 3260"
|
||||||
|
zuul_copy_output:
|
||||||
|
'{{ devstack_log_dir }}/tcpdump.pcap': logs
|
||||||
|
|
||||||
|
|
||||||
|
|
43
lib/tcpdump
Normal file
43
lib/tcpdump
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# lib/tcpdump
|
||||||
|
# Functions to start and stop a tcpdump
|
||||||
|
|
||||||
|
# Dependencies:
|
||||||
|
#
|
||||||
|
# - ``functions`` file
|
||||||
|
|
||||||
|
# ``stack.sh`` calls the entry points in this order:
|
||||||
|
#
|
||||||
|
# - start_tcpdump
|
||||||
|
# - stop_tcpdump
|
||||||
|
|
||||||
|
# Save trace setting
|
||||||
|
_XTRACE_TCPDUMP=$(set +o | grep xtrace)
|
||||||
|
set +o xtrace
|
||||||
|
|
||||||
|
TCPDUMP_OUTPUT=${TCPDUMP_OUTPUT:-$LOGDIR/tcpdump.pcap}
|
||||||
|
|
||||||
|
# e.g. for iscsi
|
||||||
|
# "-i any tcp port 3260"
|
||||||
|
TCPDUMP_ARGS=${TCPDUMP_ARGS:-""}
|
||||||
|
|
||||||
|
# start_tcpdump() - Start running processes
|
||||||
|
function start_tcpdump {
|
||||||
|
# Run a tcpdump with given arguments and save the packet capture
|
||||||
|
if is_service_enabled tcpdump; then
|
||||||
|
if [[ -z "${TCPDUMP_ARGS}" ]]; then
|
||||||
|
die $LINENO "The tcpdump service requires TCPDUMP_ARGS to be set"
|
||||||
|
fi
|
||||||
|
touch ${TCPDUMP_OUTPUT}
|
||||||
|
run_process tcpdump "/usr/sbin/tcpdump -w $TCPDUMP_OUTPUT $TCPDUMP_ARGS" root root
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# stop_tcpdump() stop tcpdump process
|
||||||
|
function stop_tcpdump {
|
||||||
|
stop_process tcpdump
|
||||||
|
}
|
||||||
|
|
||||||
|
# Restore xtrace
|
||||||
|
$_XTRACE_TCPDUMP
|
7
stack.sh
7
stack.sh
@ -614,6 +614,7 @@ source $TOP_DIR/lib/swift
|
|||||||
source $TOP_DIR/lib/neutron
|
source $TOP_DIR/lib/neutron
|
||||||
source $TOP_DIR/lib/ldap
|
source $TOP_DIR/lib/ldap
|
||||||
source $TOP_DIR/lib/dstat
|
source $TOP_DIR/lib/dstat
|
||||||
|
source $TOP_DIR/lib/tcpdump
|
||||||
source $TOP_DIR/lib/etcd3
|
source $TOP_DIR/lib/etcd3
|
||||||
|
|
||||||
# Extras Source
|
# Extras Source
|
||||||
@ -1053,6 +1054,12 @@ fi
|
|||||||
# A better kind of sysstat, with the top process per time slice
|
# A better kind of sysstat, with the top process per time slice
|
||||||
start_dstat
|
start_dstat
|
||||||
|
|
||||||
|
# Run a background tcpdump for debugging
|
||||||
|
# Note: must set TCPDUMP_ARGS with the enabled service
|
||||||
|
if is_service_enabled tcpdump; then
|
||||||
|
start_tcpdump
|
||||||
|
fi
|
||||||
|
|
||||||
# Etcd
|
# Etcd
|
||||||
# -----
|
# -----
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user