Expose connection_string parameter into DevStack plugin

With this patch the user can select which OSProfiler driver to use
in DevStack. The configuration parameter is `OSPROFILER_CONNECTION_STRING`.
Default empty value refers to Ceilometer-based driver (value `messaging://`).

DevStack plugin's README is updated to explain new option.

Change-Id: I608cd3e7bafd29db72e9e3e4cb8eb7437cd81ab2
This commit is contained in:
Ilya Shakhat 2017-06-09 11:45:18 +02:00
parent ce64d7d9ba
commit 66d0607dd0
3 changed files with 36 additions and 8 deletions

View File

@ -5,24 +5,50 @@ Enabling OSProfiler using DevStack
This directory contains the files necessary to run OpenStack with enabled This directory contains the files necessary to run OpenStack with enabled
OSProfiler in DevStack. OSProfiler in DevStack.
To configure DevStack to enable OSProfiler edit OSProfiler has different drivers for trace processing. The default driver uses
``${DEVSTACK_DIR}/local.conf`` file and add:: Ceilometer to process and store trace events. Other drivers may connect
to databases directly and do not require Ceilometer.
To configure DevStack and enable OSProfiler edit ``${DEVSTACK_DIR}/local.conf``
file and add the following to ``[[local|localrc]]`` section:
* to use specified driver::
enable_plugin osprofiler https://git.openstack.org/openstack/osprofiler master
OSPROFILER_CONNECTION_STRING=<connection string value>
the driver is chosen depending on the value of
``OSPROFILER_CONNECTION_STRING`` variable (refer to the next section for
details)
* to use default Ceilometer driver::
enable_plugin panko https://git.openstack.org/openstack/panko master enable_plugin panko https://git.openstack.org/openstack/panko master
enable_plugin ceilometer https://git.openstack.org/openstack/ceilometer master enable_plugin ceilometer https://git.openstack.org/openstack/ceilometer master
enable_plugin osprofiler https://git.openstack.org/openstack/osprofiler master enable_plugin osprofiler https://git.openstack.org/openstack/osprofiler master
to the ``[[local|localrc]]`` section. .. note:: The order of enabling plugins matters.
One can also configure a set of HMAC secrets, that are used for triggering of Run DevStack as normal::
profiling in OpenStack services: only the requests that specify one of these
$ ./stack.sh
Config variables
----------------
**OSPROFILER_HMAC_KEYS** - a set of HMAC secrets, that are used for triggering
of profiling in OpenStack services: only the requests that specify one of these
keys in HTTP headers will be profiled. E.g. multiple secrets are specified as keys in HTTP headers will be profiled. E.g. multiple secrets are specified as
a comma-separated list of string values:: a comma-separated list of string values::
OSPROFILER_HMAC_KEYS=swordfish,foxtrot,charlie OSPROFILER_HMAC_KEYS=swordfish,foxtrot,charlie
.. note:: The order of enabling plugins matter. **OSPROFILER_CONNECTION_STRING** - connection string to identify the driver.
Default value is ``messaging://`` refers to Ceilometer driver. For a full
list of drivers please refer to
``http://git.openstack.org/cgit/openstack/osprofiler/tree/osprofiler/drivers``.
Example: enable ElasticSearch driver with the server running on localhost::
Run DevStack as normal:: OSPROFILER_CONNECTION_STRING=elasticsearch://127.0.0.1:9200
$ ./stack.sh

View File

@ -53,6 +53,7 @@ function configure_osprofiler() {
iniset $conf profiler enabled True iniset $conf profiler enabled True
iniset $conf profiler trace_sqlalchemy True iniset $conf profiler trace_sqlalchemy True
iniset $conf profiler hmac_keys $OSPROFILER_HMAC_KEYS iniset $conf profiler hmac_keys $OSPROFILER_HMAC_KEYS
iniset $conf profiler connection_string $OSPROFILER_CONNECTION_STRING
fi fi
done done
if [ -f $CEILOMETER_CONF ] if [ -f $CEILOMETER_CONF ]

View File

@ -4,5 +4,6 @@
# of profiling in OpenStack services: profiling is only performed for # of profiling in OpenStack services: profiling is only performed for
# requests that specify one of these keys in HTTP headers. # requests that specify one of these keys in HTTP headers.
OSPROFILER_HMAC_KEYS=${OSPROFILER_HMAC_KEYS:-"SECRET_KEY"} OSPROFILER_HMAC_KEYS=${OSPROFILER_HMAC_KEYS:-"SECRET_KEY"}
OSPROFILER_CONNECTION_STRING=${OSPROFILER_CONNECTION_STRING:-"messaging://"}
enable_service osprofiler enable_service osprofiler