Admin resource usage page - Statistics and charts connected to ceilometer - Enhancements of the blueprint from H3

Registered by Ladislav Smola

Implementation of Resource usage page in Admin Tab
Should contain:
- sortable tables (via AJAX) of resources with most important statistics (all resource types)
- line charts with multiple series of resources showing statistics in time
- aggregate statistics (same as above but aggregate of resources by Users and Projects)
- details list of alerts + maybe health chart + timeseries chart of alerts

Blueprint information

Status:
Complete
Approver:
David Lyle
Priority:
Low
Drafter:
Jaromir Coufal
Direction:
Needs approval
Assignee:
Ladislav Smola
Definition:
Obsolete
Series goal:
None
Implementation:
Not started
Milestone target:
None
Completed by
Matthias Runge

Related branches

Sprints

Whiteboard

[jcoufal] Ongoing discussion is happening on G+ UX Community group: https://plus.google.com/u/0/109148450119867323829/posts/FgyeMf4WcNw

The sorting is blocked by GroupBy blueprint of the ceilometer.

The detailed overview of the instances will be added later.

Gerrit topic: https://review.openstack.org/#q,topic:bp/admin-resource-usage-page,n,z

Addressed by: https://review.openstack.org/43880
    Adding Rickshaw as dependency

Addressed by: https://review.openstack.org/43881
    Adding reusable Line Chart

Addressed by: https://review.openstack.org/35590
    Add metering panel to admin console

Addressed by: https://review.openstack.org/35589
    Add ceilometer api and the tests for it

[lsmola - the old conversation- need to extract the important stuff]

[gabrielhurley] Notes from the design summit session:
Basic charts and graphs: https://blueprints.launchpad.net/horizon/+spec/d3
Integrate ceilometer in the existing panels instead of separate section of the UI
Reporting for more than one project? -> Data should be filtered only by "openstack" source in the admin view
Metering for the user vs metering for the admin
How do we visualize the data?
Maybe only show data that appears to indicate an issue?
"Show me what's broken"
outliers
heat map of instances
rank order list based on consumption
sparklines (v2 api?)
RPC - Join consumer pool

What API changes are needed in ceilometer?
aggregate stats by resource to select max, min, etc.
ordering, limiting
Support for grouping/aggregating of data in ceilometer, not in horizon
Source code: https://github.com/yuanotes/horizon/tree/ceilometer

[jpichon 10.06.2013] A few general comments about the code currently on github, that should ideally be fixed up.

   * The panel and directory should probably be renamed to "metering" or "resources_usage" rather than "ceilometer", to be consistent with the other panels that do no use project codenames.
   * The import ordering needs to be fixed in many files (cf. https://github.com/openstack-dev/hacking/blob/master/HACKING.rst#imports - https://github.com/openstack-dev/hacking/blob/master/HACKING.rst#human-alphabetical-order-examples : first stdlib imports, then 3rd party (e.g. django), then horizon specific, separated by a blank line). They're often all mixed up at the moment.
   * The tests.py file is empty, we should at least be testing that the different view urls load fine, as well as the utils-like functions currently defined in views.py. (Appreciate the tests and test data for the API itself!)
   * A minor one but in the tabs for the allowed() method, it doesn't look like using a set() to redefine the permissions (set(permissions)) is actually needed since we know there aren't duplicates?
   * I wonder (maybe a future feature/patch?) if it would be possible to offer a view to the user, so that non-admins can also see the data that relates to their tenant? (I'm not familiar with ceilometer so perhaps this isn't currently possible)
   * I don't understand the goal of the StringWithPlusOperation classes in tables.py, it would be nice to make the name and/or doc strings clearer.
   * The FilterAction classes in tables.py are pretty much the same, it should be possible to make the class generic and reuse it across tables.
   * With regard to addHorizonLoadEvent in stats.html, we usually first check that jQuery is loaded, see e.g. /openstack_dashboard/dashboards/admin/users/templates/users/_update.html
   * Is the samples.html template actually used/needed?

Also, something else that might well be obvious but just in case... before pushing to Gerrit there are a number of commits can probably be squashed together, particularly when it comes to chart updates and alternative approaches that were ultimately dismissed (e.g. the jquery-ui route).

Gerrit topic: https://review.openstack.org/#q,topic:bp/ceilometer,n,z

Addressed by: https://review.openstack.org/35588
    Add ceilometerclient and bootstrap-datepicker as dependency.

Addressed by: https://review.openstack.org/35589
    Add ceilometer api and the tests for it.

[2013-07-15 | Gabriel] There's still a good deal of work that needs to happen here and the discussion seems to be expanding rather than narrowing to a consensus. As such I'm pushing this to H3.

[dklyle 2013-08-28] This is split from the base ceilometer BP. It will be the only panel in Havana to use ceilometer data. Was split from base ceilometer BP as it was being rescoped.

Addressed by: https://review.openstack.org/44289
    Add metering panel to admin console

[david-lyle Dec 2 2013] We don't have an owner and too much ceilometer work for one person at this point, so moving to future. If something changes, we can always bring this back into Icehouse.

(?)

Work Items

Work items:
Make wireframes: TODO

Dependency tree

* Blueprints in grey have been implemented.

This blueprint contains Public information 
Everyone can see this information.