f15a7e47e6
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 |
||
---|---|---|
.. | ||
lib | ||
README.rst | ||
plugin.sh | ||
settings |
README.rst
Enabling OSProfiler using DevStack
This directory contains the files necessary to run OpenStack with enabled OSProfiler in DevStack.
OSProfiler can send trace data into different collectors. There are 2 parameters that control this:
OSPROFILER_COLLECTOR
specifies which collector to install in DevStack. By default OSProfiler plugin does not install anything, thus default messaging driver with Ceilometer storage will be used.Possible values:
<empty>
- default messaging driver with Ceilometer is usedredis
- Redis is installed
The default value of
OSPROFILER_CONNECTION_STRING
is set automatically depending onOSPROFILER_COLLECTOR
value.OSPROFILER_CONNECTION_STRING
specifies which driver is used by OSProfiler.Possible values:
messaging://
- use messaging as trace collector (with the transport configured by oslo.messaging)redis://host:port
- use Redis as trace storageelasticsearch://host:port
- use Elasticsearch as trace storagemongodb://host:port
- use MongoDB as trace storageloginsight://username:password@host
- use LogInsight as trace collector/storage
To configure DevStack and enable OSProfiler edit
${DEVSTACK_DIR}/local.conf
file and add the following to
[[local|localrc]]
section:
to use Redis collector:
enable_plugin osprofiler https://git.openstack.org/openstack/osprofiler master OSPROFILER_COLLECTOR=redis
OSProfiler plugin will install Redis and configure OSProfiler to use Redis driver
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 ceilometer https://git.openstack.org/openstack/ceilometer master enable_plugin osprofiler https://git.openstack.org/openstack/osprofiler master
Note: the order of enabling plugins matters.
Run DevStack as normal:
$ ./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 a comma-separated list of string values:
OSPROFILER_HMAC_KEYS=swordfish,foxtrot,charlie
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:
OSPROFILER_CONNECTION_STRING=elasticsearch://127.0.0.1:9200
OSPROFILER_COLLECTOR - controls which collector to install into DevStack. The driver is then chosen automatically based on the collector. Empty value assumes that the default messaging driver with Ceilometer is used. Example: enable Redis collector:
OSPROFILER_COLLECTOR=redis