diff options
| author | Ilya Shakhat <shakhat@gmail.com> | 2017-12-12 14:44:44 +0100 |
|---|---|---|
| committer | Ilya Shakhat <shakhat@gmail.com> | 2017-12-15 15:07:18 +0100 |
| commit | f15a7e47e6b9c088a2f3ab8f6d760a519cfafcd2 (patch) | |
| tree | 0975f716f9cc0a7df0cc4257d4a9b254f1419976 /devstack/lib | |
| parent | 23e53ec9eb445a032fc85666698cd94c19174d75 (diff) | |
| download | osprofiler-f15a7e47e6b9c088a2f3ab8f6d760a519cfafcd2.tar.gz | |
Make collector configurable in DevStack plugin
In DevStack OSProfiler is by default configured to use messaging
driver with Ceilometer backend. User can change the driver, but
still needs to install collector/storage manually. This patch
introduces configuration option `OSPROFILER_COLLECTOR` which is
used to specify which collector/storage to install into DevStack.
Currently 2 values are supported:
* `redis` to install Redis server and use Redis driver
* <empty> to keep the default behavior and use messaging driver
To test the patch on DevStack, the following lines are needed in local.conf:
enable_plugin osprofiler https://git.openstack.org/openstack/osprofiler refs/changes/06/527406/5
OSPROFILER_BRANCH=refs/changes/06/527406/5
OSPROFILER_COLLECTOR=redis
Change-Id: Ia9763605db95b3f35c8b0e51211f96ee0dd3a82d
Diffstat (limited to 'devstack/lib')
| -rw-r--r-- | devstack/lib/osprofiler | 54 |
1 files changed, 36 insertions, 18 deletions
diff --git a/devstack/lib/osprofiler b/devstack/lib/osprofiler index dbbebd4..5c49543 100644 --- a/devstack/lib/osprofiler +++ b/devstack/lib/osprofiler @@ -1,16 +1,7 @@ -# lib/osprofiler -# Functions to control the configuration and operation of the **osprofiler** - -# Dependencies: -# -# - ``functions`` file -# - ``DEST``, ``DATA_DIR``, ``STACK_USER`` must be defined +#!/bin/bash -# ``stack.sh`` calls the entry points in this order: -# -# - install_osprofiler -# - configure_osprofiler -# - init_osprofiler +# lib/osprofiler +# Functions to control the configuration and operation of the **OSProfiler** # Save trace setting XTRACE=$(set +o | grep xtrace) @@ -44,7 +35,31 @@ export CEILOMETER_NOTIFICATION_TOPICS=notifications,profiler # Functions # --------- -# configure_osprofiler() - Nothing for now +function install_redis() { + if is_fedora; then + install_package redis python-redis + elif is_ubuntu; then + install_package redis-server python-redis + elif is_suse; then + install_package redis python-redis + else + exit_distro_not_supported "redis installation" + fi + + start_service 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 @@ -56,6 +71,14 @@ function configure_osprofiler() { 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 + if [ -f $CEILOMETER_CONF ] then iniset $CEILOMETER_CONF event store_raw info @@ -65,8 +88,3 @@ function configure_osprofiler() { # Restore xtrace $XTRACE - -# Tell emacs to use shell-script-mode -## Local variables: -## mode: shell-script -## End: |
