Declarative (code-free) pollster for VMware vSphere

Registered by Akhil Hingane

Each time a new meter is introduced in Ceilometer, we need to perform a lot of tasks like:
1) Adding a mapping in setup.cfg for the new meter to a Pollster
2) Writing a pollster for the counter
3) Implementing the corresponding method in inspectors to collect data for the meter.

Hypervisors like Vsphere come with a single generic API for querying statistics for any meter. Moreover, it supports over 300 such meters. From the development perspective, it will be very difficult, time-consuming and unnecessary to implement a pollster for each and every such meter.

From a customer perspective too, the following difficulties exist:
1) Though Vsphere supports 300+ meters, all the data is not available via Ceilometer. (Cpu counters in vsphere http://pubs.vmware.com/vsphere-55/index.jsp?topic=%2Fcom.vmware.wssdk.apiref.doc%2Fcpu_counters.html. Similarly, many such counters exist for other resources)
2) There is no way for the customers to be able to select the meters for which data should be collected by Ceilometer.
3) Even if the developers put in the efforts to collect data for each and every Vsphere meter, if the customer is interested only in some specific meters, it will be an unnecessary load on Ceilometer to collect data for so many meters.

Hence, we propose to implement a generic solution where:

A configuration file can be provided in Ceilometer, which will have a mapping of Ceilometer's meter to the corresponding Vsphere's (or any such other hypervisor's) counter. Customers can directly add/remove these mappings, so that they can have control over which meters to populate in Ceilometer. The configuration file can have additional parameters like, conversion factor for the meters and/or method in the corresponding inspector to be used to populate the meter, if the methods are not generic enough.

We can publish sample configuration files for all the meters, and for each hypervisor.

libvirt-mappings.config
hyperv-mappings.config
vsphere-mappings.config
             .

Example vsphere-mappings.config
Meter........................Vsphere Counter.............................................Scaling/Conversion factor
------------------------------------------------------------------------------------------------------------------------------------
memory.usage........mem.consumed.average...............................1/1024
cpu_util.....................cpu.usage.average..........................................1
vcpus.........................cpu.corecount.provisioned.average.............1
disk.root.size............disk.capacity.provisioned...............................1/1048576

Blueprint information

Status:
Complete
Approver:
None
Priority:
Undefined
Drafter:
Akhil Hingane
Direction:
Needs approval
Assignee:
Piyush Masrani
Definition:
Obsolete
Series goal:
None
Implementation:
Unknown
Milestone target:
None
Completed by
gordon chung

Related branches

Sprints

Whiteboard

Addressed by: https://review.openstack.org/105130
    VMware Vsphere Declarative polling spec

Addressed by: https://review.openstack.org/114829
    VMware vSphere Declarative Polling

stale --gordc(2017-12)

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.