Skip to content

docc-lab/osprofiler

 
 

Repository files navigation

Team and repository tags

image

OSProfiler -- Library for cross-project profiling library

Latest Version

Downloads

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

Docc-lab Changes

  • Disable sqlalchemy tracing
  • Added --since to osprofiler list
  • Added tracepoint_id to spans. Only works fully for redis backend.
    • For normal traces, location of function and full function name with class etc.
    • For web calls, path that is called and request type
  • Disabled loginsight backend
  • Added sampling rate
  • Global variables at osprofiler/profiler.py
    • CREATE_MANIFEST: create a file for each tracepoint encountered
    • TRACE_NEWTHREAD: trace thread creation events
    • SKELETON_ONLY: only collect thread creation events
  • Added profiler.annotate to add annotations to traces
  • Added ability to enable/disable tracepoints. Works by reading manifest files at each tracepoint
  • Fixed metaclass/builtin method tracing. These traces work correctly now. Can turn into a pull request to upstream.

ORE Installation

  • Clone the repo
  • sudo pip install -r requirements.txt --no-deps --force-reinstall -U
  • sudo pip install --no-deps --force-reinstall -U .
  • sudo systemctl restart devstack@*

About

OpenStack cross service/project profiler

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 93.5%
  • HTML 4.9%
  • Shell 1.6%