[openstack-dev] [Ceilometer][Horizon] Exposing and showing associated resource_id within alarms/combined alarms
christian.martinez at intel.com
Wed Jun 11 17:34:15 UTC 2014
I was taking a look at the proposed alarm-page designs  for the bp: https://blueprints.launchpad.net/horizon/+spec/ceilometer-alarm-management-page and I saw that the alarms table has a column named "Resource Name". The intention of that column is to show the resources associated within an alarm (also for the case of more complex alarms or "combined alarm" if you prefer) but right now, ceilometer does only retrieve the associated resources id's inside the "query" param (at least, for the threshold alarms, in the case of combined alarms you won't get any resource id).
>From the Horizon POV, getting the resource name represents a lot of work and a huge impact in performance because, if we choose to show this "Resource Name" column, we would need to do, for each alarm retrieved :
1. Check the query parameter and then extract the resource id
2. Then, depending on the type of resource (because it could be a vm, an image, etc.) ask for its name to the appropriate service (not sure if that is right way of doing it)
3. Save that name and then show it on the UI
In the case of combined alarms, not only we'll have to do all that but also:
* Extract the alarms_ids used for the alarm combination (which can be also combined alarms, so take that into account)
* For each threshold alarm, run previous 1-3 steps
o In case of step 3, instead of show the name to the UI, store it into a list of resource names that needs to be showed after finishing the processing
As you can see, for an alarm table of, let's say 10 combined alarms (which it could be a valid use case), we would need to do one call to alarm-list, 20 calls to alarm-shows and then other 20 calls to each of the service that could give us the name of the resources.
I'm seeing a couple of possible solutions:
1) not rendering the "Resource name" column :) (not actually an option)
a. but I know it is the "coward" solution and I also know that showing and filtering alarms based on resources it's a good and necessary feature.
2) Expose the resource_id as we do with "meter_name", although we still need to ask for the resource name on the horizon side
a. For the combined alarms, expose a list of resources and (why not) a list of meter associated with the combined alarms.
3) Save the resource id in the alarm table in a separated column and then retrieve it
a. For combined alarms, save a list of resource_id's?
4) Any solution that you consider :)
Any thoughts around this?
Thanks for all the help!
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the OpenStack-dev