VMWare Poller

Overview

The VMWare Poller is a microservice designed to poll availability and hierarchy of virtual machines available in the provided vmware network. It also provides the topology of the machines and hosts. The service works in parallel to discovery-service.

Prerequisites

  1. A microservices cluster must be setup. Refer to Microservice Cluster Setup.

  2. Apache Pulsar must be installed. Refer to Apache Pulsar microservice.

  3. Graph Sink must be installed. Refer to Graph Sink

Setup

su - assure1
export NAMESPACE=a1-zone1-pri
export WEBFQDN=<Primary Presentation Web FQDN> 
1helm install vmware-poller assure1/vmware-poller -n $NAMESPACE --set global.imageRegistry=$WEBFQDN

Default Configuration

Name Value Possible Values Notes
LOG_LEVEL INFO FATAL, ERROR, WARN, INFO, DEBUG Logging level used by application.

Default Configuration for worker

Name Value Possible Values Notes
PORT_COORDINATOR "38890" Text, 255 characters Coordinator port.
PORT_WORKER "38891" Text, 255 characters Worker port.
GRPC_GRACEFUL_CONN_TIME "60s" Text, 255 characters Before attempting to dial to coordinator, for specified time, try checking coordinator readiness.
VMWARE_TIMEOUT "30s" Text, 255 characters Configurable timeout for VmWare connection time. Specifying a value of zero disables timeout features. Default value is 30s, you must specify unit i.e. 60s, 1m, 10h, 900ms etc.
WORKER_RCA_TOPIC "assure1/discovery/rca" Text, 255 characters RCA topic for vmware worker .
TOPOLOGY_CONFIG "true" Boolean value Set to true to create topolgy else false.
PULSAR_DISCOVERY_CALLBACK_OVERRIDE "" Text, 255 characters Discovery callback topic , default is persistent://assure1/discovery/discovery-service-zoneX

Default Configuration for coordinator

Name Value Possible Values Notes
PORT_COORDINATOR "38890" Text, 255 characters Coordinator port.
GRPC_FALLBACK_USE_IP "true" Boolean value Dial to workers using ip address else fqdn
PULSAR_VMWARE_CONTROL_OVERRIDE "persistent://assure1/discovery/vmware-poller-zone%d" Text, 255 characters By default topic created as per the zone id, can be overriden.
REDUNDANCY_POLL_PERIOD 5 Integer How often the secondary service checks to see if the primary is online, in seconds.
REDUNDANCY_FAILOVER_THRESHOLD 4 Integer The number of failed polls before the secondary becomes the active application.
REDUNDANCY_FALLBACK_THRESHOLD 1 Integer The number of successful polls before the secondary goes back to sleep.

Configurations can be changed by passing the values to the a1helm install prefixed with the configData /coordinator.configData /worker.configData parent key respectively.

Default Auto Scaling Configuration

Name Value Possible Values Notes
enabled true true, false Enables auto scaling.
pollingInterval 5 Integer Interval at which KEDA will check if the metric has surpassed the threshold.
cooldownPeriod 300 Integer Period to wait before scaling the resource back to the minimum number of replicas.
minReplicaCount 2 Integer Minimum number of replicas when the resources are scaled down.
maxReplicaCount 20 Integer Maximum number of replicas when the resources are scaled up.
dataCentersPerWorker 1 Integer Maximum number of data centers to be polled by each worker.

Configurations can be changed by passing the values to the a1helm install prefixed with the worker.autoscaling parent key respectively.

Example of setting the log level to DEBUG

a1helm install ... --set configData.LOG_LEVEL=DEBUG

Example of enabling redundancy

Redundancy will not be enabled by default. To enable this functionality, pass the following to the installation command:

a1helm install ... --set redundancy.enabled=true

Example of enabling autoscaling

Autoscaling will not be enabled by default. To enable this functionality, pass the following to the installation command:

a1helm install ... --set worker.autoscaling.enabled=true

Microservice self-metrics

The VMWare Poller Microservice exposes the following self-metrics to Prometheus.

Coordinator metrics table

Note:

Each of the below metrics is prefixed with vmware_coordinator prefix. Example of a full metric name: vmware_coordinator_total_devices

Metric Name Type Description
total_devices Gauge Total no of devices polled in last pollcycle
total_dataCenters Gauge Total no of Datacentres Polled in last pollcycle
total_polltime Gauge Total polltime of last pollcycle
total_errors Gauge Total errors during last pollcycle