Add OSProfiler to Zaqar

Change-Id: Ic843e2cfafcb2d6070b57daa923ed34912c4590e
This commit is contained in:
Victoria Martínez de la Cruz 2014-11-19 11:25:56 -03:00 committed by Zhi Yan Liu
parent 0bbd0d5cb2
commit c547cb410e
2 changed files with 127 additions and 1 deletions

View File

@ -7,4 +7,4 @@
:maxdepth: 2
approved/index
*

126
specs/kilo/osprofiler.rst Normal file
View File

@ -0,0 +1,126 @@
..
This template should be in ReSTructured text. The filename in the
git repository should match the launchpad URL, for example a URL of
https://blueprints.launchpad.net/zaqar/+spec/awesome-thing should be
named awesome-thing.rst.
Please do not delete any of the sections in this template. If you
have nothing to say for a whole section, just write: None
For help with syntax, see http://sphinx-doc.org/rest.html To test
out your formatting, see http://www.tele3.cz/jbar/rest/rest.html
==========
OSProfiler
==========
OpenStack consists of multiple projects, composed of multiple services,
working together to make different services available for the users.
In case something is not working as expected, its a really complex task
to determine what is going wrong and to locate the module causing the
bottleneck.
The OSProfiler tool aims to solve this issue by making possible to generate
one trace per request affecting all involved services and build a tree of
calls.
More details on how OSProfiler works can be find in the
`OSProfiler Readme <https://github.com/stackforge/osprofiler/blob/master/README.rst>`_
This is even more important for a project like Zaqar in which performance
in communications is a key feature.
https://blueprints.launchpad.net/zaqar/+spec/osprofiler
Problem description
===================
Currently there is no way to easily detect Zaqar's bottlenecks.
Now that some projects have successfully integrated with OSProfiler,
it is important to enable OSProfiler for Zaqar as well and contribute
by providing a continuous trace information view for a request traversing
the different services.
This spec proposes adding the OSProfiler tool to Zaqar.
Proposed change
===============
The proposed change is to integrate the OSProfiler tool to Zaqar.
According to the requirements for this addition detailed in
`OSProfiler Readme <https://github.com/stackforge/osprofiler/blob/master/README.rst>`_,
this shouldn't be a complex task. The steps required to do this are detailed
in the `Work Items`_ section.
Main functional change for Zaqar server:
https://review.openstack.org/#/c/141356/
Alternatives
------------
- Not to add the OSProfiler tool
Implementation
==============
Assignee(s)
-----------
Primary assignee: zhiyan
Milestones
----------
Target Milestone for completion: K-1
Work Items
----------
* Add initialization of OSProfiler when Zaqar server starts
* Add tracing support for WSGI
* Add tracing support for MongoDB
* Add tracing support for Redis
* Add tracing support for SQLAlchemy
* Add tracing support for Pooling
* Add profiler CONF group
* Enable or disable profiling fully
* Enable or disable MongoDB tracing
* Enable or disable Redis tracing
* Enable or disable SQLAlchemy tracing
* Enable or disable Pooling tracing
* Configure HMAC key(s) to protect trace data
* Add profile support for client
* Test the "resting" overhead when profiling is disabled and without feature
* Update document(s) to make sure new options are well documented.
.. note::
Usually DB requests create a lot of trace info, so its important to
be able to enable/disable those on demand
Dependencies
============
None
.. note::
This work is licensed under a Creative Commons Attribution 3.0
Unported License.
http://creativecommons.org/licenses/by/3.0/legalcode