Files
osprofiler/doc/source/user/background.rst
Akihiro Motoki 5d11d7bf5d rearrange existing documentation to fit the new standard layout
Change-Id: Ie4bdcc2034d0648a078e17b327df99f652887857
2017-07-06 21:38:51 +00:00

1.2 KiB

Background

OpenStack consists of multiple projects. Each project, in turn, is composed of multiple services. To process some request, e.g. to boot a virtual machine, OpenStack uses multiple services from different projects. In the case something works too slow, it's extremely complicated to understand what exactly goes wrong and to locate the bottleneck.

To resolve this issue, we introduce a tiny but powerful library, osprofiler, that is going to be used by all OpenStack projects and their python clients. It generates 1 trace per request, that goes through all involved services, and builds a tree of calls.

Why not cProfile and etc?

The scope of this library is quite different:

  • We are interested in getting one trace of points from different services, not tracing all Python calls inside one process.
  • This library should be easy integrable into OpenStack. This means that:
    • It shouldn't require too many changes in code bases of projects it's integrated with.
    • We should be able to fully turn it off.
    • We should be able to keep it turned on in lazy mode in production (e.g. admin should be able to "trace" on request).