Jump to: navigation, search

Ceilometer/blueprints/vmware-vcenter-server

< Ceilometer‎ | blueprints
Revision as of 09:22, 8 January 2014 by Piyushmasrani (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Support for VMware vCenter Server

Although Nova provides support for VMware vCenter Server, Ceilometer does not. It does not collect metrics of virtual machines deployed on VMware virtualization platform. It will be necessary to extend this support in Ceilometer. The aim is to implement a polling agent that queries samples from VMware vCenter Server:

  1. for existing meters.
  2. create new meters in Ceilometer for which VMware vCenter Server provides data.

Architectural decisions

Nature of Plugin

Ceilometer agents are one of the following types (refer to this for more details)

  • Bus listener agent - the product being monitored itself generates events and posts on the Oslo notification bus from where Ceilometer will extract it.
  • Push agents - sits with the product being monitored, fetch data from the product and pushes it on the bus.
  • Polling agents - sits external to the product being monitored, polls some API exposed by it and communicates it to Ceilometer collection agents.

For bus listener or push agents we will require changes in VC for pushing/ publishing the performance samples, which is not possible. So we are going ahead with the polling agent paradigm where we have a pollster to query 'Performance' statistics from VC. The pollster will be plugged-in to the existing framework of Ceilometer plugins.

Executing VC APIs

  • Pysphere, PyVmomi are currently not an option because of licensing issues.
  • Nova driver for VC uses SUDS (a SOAP client) library for executing VC APIs. vSphere WSDL definitions are given as an input to SUDS and it takes care of marshalling the responses to Python objects.
  • Same utility files are being used by VMware drivers for Cinder and Glance. Currently each module has duplicated files due to lack of a common module. So VMware driver for Ceilometer will have to do same.
  • There is an internal effort to extract the utilities to a common module. After the availability of this all the VMware drivers will start using the utilities from the common module.

Mapping of Ceilometer Metrics and VC counters

No.
Name
Type
Unit
VC counter
VC Unit
Conversion Factor
VC level
Notes
1
instance
Gauge
instance
--

--

Can be calculated without actual mapping from VC
2
instance:<type>
Gauge
instance
--

--

Can be calculated without actual mapping from VC
3
memory
Gauge
MB
mem.consumed.average
KB
divide by 1024
1

4
cpu
Cumulative
ns
Calculate using cpu.Usagemhz.average
Mhz
Multiply by sampling interval
1

5
cpu_util
Gauge
 %
cpu.usage.average
percent
1
1

6
vcpus
Gauge
vcpu
cpu.corecount.provisioned.average
number
1
1

7
disk.read.requests
Cumulative
request
disk.numberReadAveraged.average
Average read requests per second
Add to previously saved value of the metric
1

8
disk.write.requests
Cumulative
request
disk.numberWriteAveraged.average
Average read requests per second
Add to previously saved value of the metric
1

9
disk.read.bytes
Cumulative
B
disk.read.average
kiloBytesPerSecond
Add to previously saved value of the metric
2

10
disk.write.bytes
Cumulative
B
disk.write.average
kiloBytesPerSecond
Add to previously saved value of the metric
1

11
disk.root.size
Gauge
GB
disk.capacity.provisioned
kiloBytes
Divide by 1024*1024
3

12
disk.ephemeral.size
Gauge
GB
--
--
--

No ephemeral disk in VC
13
network.incoming.bytes
Cumulative
B
Calculate using network.bytesRx
kiloBytesPerSecond
Multiply by sampling interval and divide by 1000
2

14
network.outcoming.bytes
Cumulative
B
Calculate using network.bytesTx
kiloBytesPerSecond
Multiply by sampling interval and divide by 1000
2

15
network.incoming.packets
Cumulative
packets network.broadcastRx
number

2

16
network.outgoing.packets
Cumulative
packets
network.broadcastTx
number

2