Add developer doc for osprofiler

Change-Id: I7e17b08a245a26322fdb8287a2244235e140d9ae
This commit is contained in:
lvdongbing 2016-10-18 03:41:07 -04:00
parent 09a545bedb
commit 25ee32a23b
2 changed files with 67 additions and 0 deletions

View File

@ -42,6 +42,7 @@ Understanding the Design
testing
plugin_guide
api_microversion
osprofiler
Built-in Policy Types

View File

@ -0,0 +1,66 @@
..
Licensed under the Apache License, Version 2.0 (the "License"); you may
not use this file except in compliance with the License. You may obtain
a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
License for the specific language governing permissions and limitations
under the License.
==========
OSProfiler
==========
OSProfiler provides a tiny but powerful library that is used by
most (soon to be all) OpenStack projects and their python clients. It
provides functionality to be able to generate 1 trace per request, that goes
through all involved services. This trace can then be extracted and used
to build a tree of calls which can be quite handy for a variety of
reasons (for example in isolating cross-project performance issues).
More about OSProfiler:
http://docs.openstack.org/developer/osprofiler
Senlin supports using OSProfiler to trace the performance of each
key internal processing, including RESTful API, RPC, cluster actions,
node actions, DB operations etc.
Enabling OSProfiler
~~~~~~~~~~~~~~~~~~~
To configure DevStack to enable OSProfiler, edit the
``${DEVSTACK_DIR}/local.conf`` file and add::
enable_plugin ceilometer https://git.openstack.org/openstack/ceilometer
enable_plugin panko https://git.openstack.org/openstack/panko
enable_plugin osprofiler https://git.openstack.org/openstack/osprofiler
to the ``[[local|localrc]]`` section.
Using OSProfiler
~~~~~~~~~~~~~~~~
After successfully deploy your development environment, following profiler
configs will be auto added to ``senlin.conf``::
[profiler]
enabled = true
trace_sqlalchemy = true
hmac_keys = SECRET_KEY
``hmac_keys`` is the secret key(s) to use for encrypting context data for
performance profiling, default value is 'SECRET_KEY', you can modify it to
any random string(s).
Run any command with ``--os-profile SECRET_KEY``::
$ openstack --os-profile SECRET_KEY cluster profile list
# it will print <Trace ID>
Get pretty HTML with traces::
$ osprofiler trace show --html <Trace ID>