OpenStack cross service/project profiler
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Goutham Pacha Ravi e475de6c67 Set manila config opts in devstack 1 year ago
lib Set manila config opts in devstack 1 year ago
README.rst Automatic configuration of SQLAlchemy driver in DevStack 3 years ago Merge "Add a job to run full Tempest with enabled profiler" 3 years ago
settings Allow OSPROFILER_TRACE_SQLALCHEMY to be overridden 3 years ago


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 will be used.

    Possible values:

    • <empty> - default messaging driver is used
    • redis - Redis is installed
    • jaeger - Jaeger is installed
    • sqlalchemy - SQLAlchemy driver is installed

    The default value of OSPROFILER_CONNECTION_STRING is set automatically depending on OSPROFILER_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://[:password]@host[:port][/db] - use Redis as trace storage
    • elasticsearch://host:port - use Elasticsearch as trace storage
    • mongodb://host:port - use MongoDB as trace storage
    • loginsight://username:password@host - use LogInsight as trace collector/storage
    • jaeger://host:port - use Jaeger as trace collector
    • mysql+pymysql://username:password@host/profiler?charset=utf8 - use SQLAlchemy driver with MySQL database

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 master

    OSProfiler plugin will install Redis and configure OSProfiler to use Redis driver

  • to use specified driver:

    enable_plugin 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)

Run DevStack as normal:

$ ./

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_CONNECTION_STRING - connection string to identify the driver. Default value is messaging:// refers to messaging driver. For a full list of drivers please refer to Example: enable ElasticSearch driver with the server running on localhost:


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 is used. Example: enable Redis collector:


OSPROFILER_TRACE_SQLALCHEMY - controls tracing of SQL statements. If enabled, all SQL statements processed by SQL Alchemy are added into traces. By default enabled. Example: disable SQL statements tracing: