93 lines
2.2 KiB
Bash
93 lines
2.2 KiB
Bash
#!/bin/bash
|
|
|
|
# lib/osprofiler
|
|
# Functions to control the configuration and operation of the **OSProfiler**
|
|
|
|
# Save trace setting
|
|
XTRACE=$(set +o | grep xtrace)
|
|
set +o xtrace
|
|
|
|
|
|
# Defaults
|
|
# --------
|
|
|
|
CONF_FILES=(
|
|
$CINDER_CONF
|
|
$HEAT_CONF
|
|
$KEYSTONE_CONF
|
|
$NOVA_CONF
|
|
$NEUTRON_CONF
|
|
$GLANCE_API_CONF
|
|
$GLANCE_REGISTRY_CONF
|
|
$TROVE_CONF
|
|
$TROVE_CONDUCTOR_CONF
|
|
$TROVE_GUESTAGENT_CONF
|
|
$TROVE_TASKMANAGER_CONF
|
|
$SENLIN_CONF
|
|
$MAGNUM_CONF
|
|
$ZUN_CONF
|
|
)
|
|
|
|
# Add config files of Nova Cells
|
|
NOVA_NUM_CELLS=${NOVA_NUM_CELLS:-1}
|
|
for i in $(seq 1 ${NOVA_NUM_CELLS}); do
|
|
# call function `conductor_conf` defined in lib/nova to get file name
|
|
conf=$(conductor_conf $i)
|
|
CONF_FILES+=(${conf})
|
|
done
|
|
|
|
|
|
# Functions
|
|
# ---------
|
|
|
|
function install_redis() {
|
|
if is_fedora; then
|
|
install_package redis
|
|
elif is_ubuntu; then
|
|
install_package redis-server
|
|
elif is_suse; then
|
|
install_package redis
|
|
else
|
|
exit_distro_not_supported "redis installation"
|
|
fi
|
|
|
|
start_service redis
|
|
|
|
pip_install_gr redis
|
|
}
|
|
|
|
function install_osprofiler_collector() {
|
|
if [ -z "$OSPROFILER_COLLECTOR" ]; then
|
|
OSPROFILER_CONNECTION_STRING=${OSPROFILER_CONNECTION_STRING:-"messaging://"}
|
|
elif [ "$OSPROFILER_COLLECTOR" == "redis" ]; then
|
|
install_redis
|
|
OSPROFILER_CONNECTION_STRING=${OSPROFILER_CONNECTION_STRING:-"redis://localhost:6379"}
|
|
else
|
|
die $LINENO "OSProfiler collector $OSPROFILER_COLLECTOR is not supported"
|
|
fi
|
|
}
|
|
|
|
function configure_osprofiler() {
|
|
|
|
for conf in ${CONF_FILES[@]}; do
|
|
if [ -f $conf ]
|
|
then
|
|
iniset $conf profiler enabled True
|
|
iniset $conf profiler trace_sqlalchemy $OSPROFILER_TRACE_SQLALCHEMY
|
|
iniset $conf profiler hmac_keys $OSPROFILER_HMAC_KEYS
|
|
iniset $conf profiler connection_string $OSPROFILER_CONNECTION_STRING
|
|
fi
|
|
done
|
|
|
|
# Insert osprofiler filter into Neutron paste configuration
|
|
if [ -f $Q_API_PASTE_FILE ]; then
|
|
VAL=$(iniget $Q_API_PASTE_FILE composite:neutronapi_v2_0 keystone)
|
|
VAL=${VAL/catch_errors/catch_errors osprofiler}
|
|
iniset $Q_API_PASTE_FILE composite:neutronapi_v2_0 keystone "$VAL"
|
|
fi
|
|
}
|
|
|
|
|
|
# Restore xtrace
|
|
$XTRACE
|