vPoller version 0.1.1 - New Features & Improvements

The VMware vSphere Distributed Pollers, a.k.a vPoller has reached version 0.1.1.

New features and improvements have been added to this version of vPoller. Below you will find a summary of the changes in vPoller version 0.1.1 along with a detailed changelog.

For more information about vPoller please refer to this article, which explains the design and goals of vPoller.

What’s New in vPoller

Below you can find the summary of new features and improvements in vPoller version 0.1.1:

  • New discovery and polling methods
  • Caching of vSphere Managed Object References
  • Multiple properties support
  • Support for VirtualMachine objects
  • Support for Datacenter objects
  • Support for ClusterComputeResource objects
  • vPoller CSV helper module
  • … and other cosmetic changes

Please read further for more details on what’s new in vPoller version 0.1.1

New discovery and polling methods

Some of the old methods for polling a vSphere Object property has been renamed from <object>.poll to <object>.get.

The table below summarizes the methods used in previous versions and the new names as found in version 0.1.1.

Old Method New Method Description
host.poll host.get Get properties of a HostSystem object (ESXi host)
datastore.poll datastore.get Get properties of a Datastore object

New methods and support for other vSphere Objects has been added in version 0.1.1 as well.

The table below provides a summary of the currently existing and supported methods a vPoller Worker now accepts and processes.

Method Description
host.get Get properties of a HostSystem object (ESXi host)
datastore.get Get properties of a Datastore object
vm.get Get properties of a VirtualMachine object
datacenter.get Get properties a Datacenter object
cluster.get Get property of a ClusterComputeResource object
host.discover Discovers all HostSystem objects (ESXi hosts)
datastore.discover Discovers all Datastores objects
vm.discover Discovers all VirtualMachine objects
datacenter.discover Discovers all Datacenter objects
cluster.discover Discovers all ClusterComputeResources objects

As you can see we now support discovery and polling of the following vSphere Objects.

  • HostSystem (ESXi hosts)
  • Datastore
  • VirtualMachine
  • Datacenter
  • ClusterComputeResource

More methods and support for other vSphere Objects are to be supported as well soon enough.

Caching of vSphere Managed Object References

As with version 0.1.1 of vPoller we now use caching of vSphere MORs.

Caching of vSphere MORs helps avoiding unnecessary calls to discover a vSphere Object during polling.

In order to enable caching you need to add a new config entry to your vPoller Worker Agents:

cachettl = 30

The value of cachettl is the time in minutes in which we keep a cache in memory for vSphere Objects.

Once that cache expires the vPoller Worker Agent will update it’s cache with any new objects we might have.

Multiple properties support

Support for discovery and polling of multiple properties has been added to this version as well.

With multiple properties support you can send a request to your vPoller Workers asking for multiple properties to be returned.

You can request multiple properties for an object by appending the properties separated by a comma at the command-line.

The example command below would request multiple properties to be returned for an ESXi host:

$ vpoller-client -m host.get \
  		 -V vc01-test.example.org \
		 -e tcp://localhost:10123 \
		 -n esx01.example.org \
		 -p runtime.powerState,hardware.memorySize,summary.overallStatus

Additional properties can also be requested during discovery process as well.

Support for VirtualMachine objects

Support for VirtualMachine objects has been added in this version as well.

The new methods related to VirtualMachine objects are vm.discover and vm.get which take care of discovering and polling of VirtualMachine properties respectively.

This is how we could discover all Virtual Machines on a vSphere host:

$ vpoller-client -m vm.discover -V vc01-test.example.org -e tcp://localhost:10123

And this is how we could request properties for a VirtualMachine object:

$ vpoller-client -m vm.discover \
  		 -V vc01-test.example.org \
		 -e tcp://localhost:10123 \
		 -n vm01.example.org \
		 -p summary.overallStatus

Support for Datacenter objects

Basic support for Datacenter objects has been added.

Now you can also discover all Datacenters on a vCenter server by using a command similar to the one below:

$ vpoller-client -m datacenter.discover -V vc01-test.example.org -e tcp://localhost:10123

Support for polling of Datacenter object properties should be available soon as well.

Support for ClusterComputeResource objects

Basic support for ClusterComputeResource objects has been added.

Now you can also discover all clusters on a vCenter server by using a command similar to the one below:

$ vpoller-client -m cluster.discover -V vc01-test.example.org -e tcp://localhost:10123

Support for polling ClusterComputeResource object properties should become available soon as well.

vPoller CSV helper module

A new vPoller Helper Module has been added in version 0.1.1.

The new helper module takes care of translating a result vPoller Worker message to CSV format.

A summary of the currently supported and existing vPoller Helper Modules can be found on the table below:

Helper Description
vpoller.helpers.zabbix Helper which returns data in Zabbix-friendly format
vpoller.helpers.csvhelper Helper which returns data in CSV format

In order to use the vPoller Helper Modules specify the helper you need at the command-line similar similar to the command below:

$ vpoller-client -H vpoller.helpers.csvhelper \
  		 -m datastore.get \
		 -e tcp://localhost:10123 \
		 -V vc01.example.org \
		 -n <datastore-url> \
		 -p summary.capacity
Written on January 20, 2014