Comment 0 for bug 1188218

Revision history for this message
Mark McLoughlin (markmc) wrote :

I guess this is a subset of bug #1004468 and https://blueprints.launchpad.net/ceilometer/+spec/non-libvirt-hw

However, it's a bit different for nova-baremetal. There is no hypervisor we can query for CPU, disk and network statistics so we can't just add another plugin for ceilometer's compute agent.

Instead, we will need an agent which runs inside each baremetal instance and posts samples to ceilometer's public /meters/ API

At a first glance, these look like the counters which require a guest agent:

 cpu Cumulative ns inst ID pollster CPU time used
 cpu_util Gauge % inst ID pollster CPU utilisation
 disk.read.request Cumulative request inst ID pollster Number of read requests
 disk.write.request Cumulative request inst ID pollster Number of write requests
 disk.read.bytes Cumulative B inst ID pollster Volume of read in B
 disk.write.bytes Cumulative B inst ID pollster Volume of write in B
 network.incoming.bytes Cumulative B iface ID pollster number of incoming bytes on the network
 network.outgoing.bytes Cumulative B iface ID pollster number of outgoing bytes on the network
 network.incoming.packets Cumulative packets iface ID pollster number of incoming packets
 network.outgoing.packets Cumulative packets iface ID pollster number of outgoing packets

For the other compute counters, we can add baremetal support to the ceilometer compute agent - e.g. these counters:

 instance Gauge instance inst ID both Duration of instance
 instance:<type> Gauge instance inst ID both Duration of instance <type> (openstack types)
 memory Gauge MB inst ID notification Volume of RAM in MB
 cpus Gauge vcpu inst ID notification Number of VCPUs
 disk.root.size Gauge GB inst ID notification Size of root disk in GB
 disk.ephemeral.size Gauge GB inst ID notification Size of ephemeral disk in GB

One thing to consider is access control to these counters - we probably don't usually allow tenants to update these counters in, but in this case the tenant will require that ability.

It's unclear whether this guest agent would live in ceilometer, nova baremetal or ironic. It's interfacing with (what should be) a very stable ceilometer API, so there's no particular need for it to live in ceilometer.

I'm also adding a tripleo task, since I expect tripleo will want these metrics available for things like auto-scaling or simply resource monitoring.