Files
collectd-openstack-plugins/devstack/libs/collectd
Emma Foley 5bfb438f1c Load logfile.conf first to help debugging
Conf files in $COLLECTD_CONF_DIR are loaded in alphabetical order.

If there is an error loading the python plugin, the logfile plugin is not
loaded.
To help debugging, the logfile should be loaded first.

Changing logfile.conf to 01-logfile.conf should fix this issue by making
collectd load the logfile.conf first

Closes-Bug: #1657859

Change-Id: I1f748d61d6d9a291bcc32476ac17bb0d60fdc573
2017-02-08 17:38:14 +00:00

82 lines
3.0 KiB
Bash

#!/bin/bash
#
# common functions for collectd ceilometer plugin
# -----------------------------------------------
# start/stop service
#
function start_collectd {
if [ -e /usr/lib/systemd/system/collectd.service ] || [ -e /etc/init.d/collectd ]; then
sudo service collectd restart
fi
}
function stop_collectd {
if [ -e /usr/lib/systemd/system/collectd.service ] || [ -e /etc/init.d/collectd ]; then
sudo service collectd stop
fi
}
# install collectd service
function install_collectd {
if [[ "$COLLECTD_INSTALL" == True ]]; then
if is_fedora || is_ubuntu; then
install_package collectd
else
die $LINENO "No support for collectd on this platform"
fi
fi
}
# Add conf file for plugin
function adapt_collectd_conf {
if [ ! -d "$COLLECTD_CONF_DIR" ]; then
sudo mkdir -p "$COLLECTD_CONF_DIR"
fi
sudo cp $COLLECTD_CEILOMETER_DIR/etc/collectd.conf.d/collectd-ceilometer-plugin.conf $COLLECTD_CONF_DIR/
# Configure collectd-ceiloemter-plugin.conf
sudo sed -i 's|ModulePath.*$|ModulePath "'$COLLECTD_CEILOMETER_DIR'"|g' $COLLECTD_CONF_DIR/collectd-ceilometer-plugin.conf
sudo sed -i 's|VERBOSE.*$|VERBOSE '$COLLECTD_CEILOMETER_VERBOSE'|g' $COLLECTD_CONF_DIR/collectd-ceilometer-plugin.conf
sudo sed -i 's|BATCH_SIZE.*$|BATCH_SIZE "'$COLLECTD_BATCH_SIZE'"|g' $COLLECTD_CONF_DIR/collectd-ceilometer-plugin.conf
sudo sed -i 's|OS_AUTH_URL.*$|OS_AUTH_URL "'$OS_AUTH_URL'"|g' $COLLECTD_CONF_DIR/collectd-ceilometer-plugin.conf
sudo sed -i 's|CEILOMETER_URL_TYPE.*$|CEILOMETER_URL_TYPE "'$CEILOMETER_URL_TYPE'"|g' $COLLECTD_CONF_DIR/collectd-ceilometer-plugin.conf
sudo sed -i 's|CEILOMETER_TIMEOUT.*$|CEILOMETER_TIMEOUT "'$CEILOMETER_TIMEOUT'"|g' $COLLECTD_CONF_DIR/collectd-ceilometer-plugin.conf
sudo sed -i 's|OS_PASSWORD.*$|OS_PASSWORD "'$SERVICE_PASSWORD'"|g' $COLLECTD_CONF_DIR/collectd-ceilometer-plugin.conf
sudo sed -i 's|OS_TENANT_NAME.*$|OS_TENANT_NAME "'$SERVICE_TENANT_NAME'"|g' $COLLECTD_CONF_DIR/collectd-ceilometer-plugin.conf
# Configure custom units
if [[ "$COLLECTD_CEILOMETER_UNITS" != none ]]; then
OIFS=$IFS
IFS=','
for UNIT in $COLLECTD_CEILOMETER_UNITS
do
sudo sed -i '/<UNITS>/a\ UNIT '"$UNIT"'' $COLLECTD_CONF_DIR/collectd-ceilometer-plugin.conf
done
IFS=$OIFS
fi
# Configure collectd logfile plugin
if [ -n $COLLECTD_LOG_FILE ]; then
touch $COLLECTD_LOG_FILE
fi
sudo cp $COLLECTD_CEILOMETER_DIR/etc/collectd.conf.d/logfile.conf $COLLECTD_CONF_DIR/01-logfile.conf
sudo sed -i 's|LogLevel.*$|LogLevel "'$COLLECTD_LOG_LEVEL'"|g' $COLLECTD_CONF_DIR/01-logfile.conf
sudo sed -i 's|File.*$|File "'$COLLECTD_LOG_FILE'"|g' $COLLECTD_CONF_DIR/01-logfile.conf
}
# remove plugin conf file
function restore_collectd_conf {
if [ -f '$COLLECTD_CONF_DIR/collectd-ceilometer-plugin.conf' ]; then
sudo rm -f $COLLECTD_CONF_DIR/collectd-ceilometer-plugin.conf
sudo rm -f $COLLECTD_CONF_DIR/01-logfile.conf
fi
}