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

- Background
  - Why not cProfile and etc?
- API
  - Five ways to add a new trace point.
  - How profiler works?
  - Process of sending to collector.
  - Setting up the collector.
  - Initialization of profiler.
  - OSProfiler CLI.
- Integration
  - What we should use as a centralized collector?
  - How to setup profiler notifier?
  - How to initialize profiler, to get one trace across all services?
  - What points should be tracked by default?
- Collectors
  - Redis
  - SQLAlchemy
  - OTLP
- Similar projects

## Release Notes

- ChangeLog

this page last updated: 2026-03-27 00:00:00

Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.

found an error? report a bug