Ceilometer API statistics Decorators and Unit convertors
Right now, the Ceilometer API statistics methods returns all statistics in their default unit and format.
We should be able to define decorators(or maybe name it filters, as this naming is already used in Horizon) and unit convertors for the meters for the statistics list, so we can easily define that cpu should be decorated as 12.3days, instead of 1... ns
We should be able to define:
1. Decorators based on Meter names
e.g. decorators={'cpu': (float, lambda x: x + ' GB')} which will convert it to some float format and add 'GB' string to the end
1.1. Define default decorators for each Meter name
default decorators can be redefined by 1. for specific statistics
2. Unit conversion based on Meter name
e.g. conversions=
2.1 Default conversions for each meter name
default conversions can be redefined by 2. for specific statistics
The order of applying will be: first Conversion, then Decorating
!!! important
As the decorator will be changing a unit, I need to be able to obtain the unit back.
So it has to be somehow connected to this https:/
Probably, every meter statistic should hold a object of the Meter, that contains the current Unit. After converting the meter statistic to another unit, we should change the Meter object unit.
So e.g. the to_hours convert method could obtain the original unit from Class definition of the cpu Meters. The current unit would be available in the Meters object that holds the cpu.
Looking back, it might be better to not join decorator and converting logic.
Converting logic could reside in Meters class.
Blueprint information
- Status:
- Complete
- Approver:
- David Lyle
- Priority:
- Medium
- Drafter:
- Ladislav Smola
- Direction:
- Approved
- Assignee:
- Ana Krivokapić
- Definition:
- Approved
- Series goal:
- Accepted for kilo
- Implementation:
-
Implemented
- Milestone target:
-
2015.1.0
- Started by
- Ana Krivokapić
- Completed by
- Ana Krivokapić
Related branches
Related bugs
Bug #1226479: Abstraction of Ceilometer meters information | Fix Released |
Bug #1226489: Adding unit label in the Line chart axis | Fix Released |
Sprints
Whiteboard
[lsmola | 22.10.2013]
For unit conversions, it would be better to use some library, rather than code it myself.
e.g.:
https:/
https:/
https:/
http://
[2014-01-12 david-lyle] moving to i-3 as not started yet
[2014-02-03 | david-lyle] moving out of icehouse
Gerrit topic: https:/
Addressed by: https:/
WIP: Add unit conversion for metering views
[david-lyle | 2014.07.23] Moving to Juno-3. Blocked by requirements changes.
[david-lyle 2014.09.02] Moving out of Juno. Looks like it needs more work.
Gerrit topic: https:/
Work Items
Dependency tree

* Blueprints in grey have been implemented.