Profiling OpenStack from the Developer Dashboard
Summary
=======
To provide Horizon operators, developers and cloud architects a new tool for profiling OpenStack deployment right from the Horizon Web UI.
Motivation
=========
If you have ever run Horizon Dashboard on top of large OpenStack deployment, you must have asked yourself: Why is Horizon so slow? Or is it OpenStack so slow? Identifying the real performance bottlenecks in an actual OpenStack deployment is the first step before fixing these performance issues. There already exists openstack/
To make profiling of OpenStack more accessible and thus draw a greater attention to the problems of OpenStack performance, creating a Web UI-based tool is a natural choice. Implementing it right inside Horizon also solves different Horizon performance problems as well. Moreover, integrating the osprofiler library into Horizon enables us to add a new Rally benchmarking job for Horizon, which will tell the community in a quantifiable way whether the commit under question makes Horizon performance better or worse.
Description
=========
1. Integrate osprofiler into Horizon Django middleware classes pipeline
2. Add trace points into openstack_
3. Implement a new panel in Developer Dashboard to allow for profiling from UI.
UX
===
A new Profiler panel appears within Developer dashboard. When profiling is enabled there, a new dropdown appears in the right side of the header bar, which allows to profile the rendering of the current page. Once it's done, a message box with a link appears which leads to a Profiler panel. There one will be able to see all the traces written on behalf of the current user, including the new one.
Wireframes, Mocks, Videos and UI Markup
-------
N/A
Testing
======
N/A as a developer feature
Outside Dependencies
==================
MongoDB cluster needs to be installed on Devstack host (default configuration), see https:/
Requirements Update Required
=======
osprofiler and pymongo requirements are added to horizon
Doc Impact
=========
N/A
Blueprint information
- Status:
- Complete
- Approver:
- Richard Jones
- Priority:
- High
- Drafter:
- Timur Sufiev
- Direction:
- Approved
- Assignee:
- Timur Sufiev
- Definition:
- Approved
- Series goal:
- Accepted for 11.0.0-ocata
- Implementation:
- Implemented
- Milestone target:
- ocata-2
- Started by
- Richard Jones
- Completed by
- Rob Cresswell
Related branches
Related bugs
Sprints
Whiteboard
Gerrit topic: https:/
Addressed by: https:/
[WIP] start playing with middleware
Addressed by: https:/
Do not cache templates in TEMPLATE_DEBUG mode
Addressed by: https:/
Add 2 more actions to profiler dropdown
Gerrit topic: https:/
Gerrit topic: https:/
Gerrit topic: https:/
Gerrit topic: https:/
Gerrit topic: https:/
Addressed by: https:/
Add the Profiler panel to the Developer dashboard
Addressed by: https:/
Wrap api calls with tracing decorators
Gerrit topic: https:/
Addressed by: https:/
Fix getting the images list in Admin->Images
Addressed by: https:/
[WIP] Test integration tests with recent FF
Gerrit topic: https:/