vPoller Helpers

The vPoller Helpers were implemented in order to provide an easy way for connecting your applications to vPoller.

A result messages returned by the vpoller-worker is always in JSON format. This could be okay for most applications, which require to process a result message, but in some cases you might want to receive the result in different formats and feed the data into your application.

Using the vPoller Helpers you are able to convert the result message to a format that your application or system understands.

The table below summarizes the currently existing and supported vPoller Helpers along with a short description:

vPoller Helper Description
vpoller.helpers.zabbix Helper which returns result in Zabbix-friendly format
vpoller.helpers.czabbix vPoller Zabbix helper for C clients
vpoller.helpers.csvhelper Helper which returns result in CSV format
vpoller.helpers.cclient Helper for vPoller C clients

The vPoller Helpers are simply Python modules and are loaded by the vPoller Workers upon startup.

Enabling helpers

In order to enable helpers in your vPoller Workers you need to specify in the vpoller.conf file the helper modules, which you wish to be loaded and available to clients.

Here is a sample vpoller.conf file which includes the helpers configuration option for loading the zabbix helper module in your vPoller Worker:

[proxy]
frontend = tcp://*:10123
backend  = tcp://*:10124
mgmt     = tcp://*:9999

[worker]
db       = /var/lib/vconnector/vconnector.db
proxy    = tcp://localhost:10124
mgmt     = tcp://*:10000
helpers  = vpoller.helpers.zabbix

Multiple vPoller helpers can be loaded as well by separating them using a comma.

Here’s an example vpoller.conf file which loads multiple helpers in your vPoller Worker:

[proxy]
frontend = tcp://*:10123
backend  = tcp://*:10124
mgmt     = tcp://*:9999

[worker]
db       = /var/lib/vconnector/vconnector.db
proxy    = tcp://localhost:10124
mgmt     = tcp://*:10000
helpers  = vpoller.helpers.zabbix,vpoller.helpers.czabbix

vPoller Zabbix Helper

One of the vPoller Helpers is the Zabbix vPoller Helper module, which can translate a result message to Zabbix LLD format and return values ready to be used in Zabbix items as well.

Here is an example of using the Zabbix vPoller Helper, which will convert a result message to Zabbix-friendly format:

$ vpoller-client --method datastore.discover --vsphere-host vc01.example.org \
             --helper vpoller.helpers.zabbix

The *.discover methods of vPoller when used with the Zabbix helper, would return data ready in Zabbix LLD format.

When using the *.get methods of vPoller with the Zabbix helper, the result would be a single property value, making it suitable for use in Zabbix items.

This is how to retrieve a property of a Datastore object using the Zabbix helper:

$ vpoller-client --method vm.get --vsphere-host vc01.example.org \
             --name vm01.example.org --properties runtime.powerState \
             --helper vpoller.helpers.zabbix

vPoller CSV Helper

Another vPoller helper is the vPoller CSV helper which translates a result message in CSV format.

Here is an example how to get all your Virtual Machines and their runtime.powerState property in CSV format:

$ vpoller-client --method vm.discover --vsphere-host vc01.example.org \
             --properties runtime.powerState \
             --helper vpoller.helpers.csvhelper

And here is a sample result from the above command:

name,runtime.powerState
vpoller-vm-1,poweredOn
vpoller-vm-2,poweredOn
freebsd-vm-1,poweredOn
zabbix-vm-1.04-dev,poweredOn

Here is one post that you can read which makes use of the vPoller CSV Helper in order to export data from a vSphere environment and plot some nice graphs from it.