Ping Poller

The Ping Poller microservice performs ICMP discovery for the discovery request and pings the device for availability.

This microservice is part of the Discovery microservice pipeline. It uses a worker-coordinator design to balance workloads and allow for scaling. See Understanding the Discovery Pipeline in Unified Assurance Concepts for conceptual information.

You can enable redundancy for this microservice when you deploy it. See Configuring Microservice Redundancy for general information.

Autoscaling is enabled by default for this microservice. You can optionally disable autoscaling when you deploy the microservice. See Configuring Autoscaling.

This microservice provides additional Prometheus monitoring metrics. See Ping Poller Self-Monitoring Metrics.

Ping Poller Prerequisites

Before deploying the microservice, confirm that the following prerequisites are met:

  1. A microservice cluster is set up. See Microservice Cluster Setup.

  2. The following microservices are deployed:

Deploying Ping Poller

To deploy the microservice, run the following commands:

su - assure1
export NAMESPACE=<namespace>
export WEBFQDN=<WebFQDN> 
a1helm install <microservice-release-name> assure1/ping-poller -n $NAMESPACE --set global.imageRegistry=$WEBFQDN

In the commands:

You can also use the Unified Assurance UI to deploy microservices. See Deploying a Microservice by Using the UI for more information.

Changing Ping Poller Configuration Parameters

When running the install command, you can optionally change default configuration parameter values by including them in the command with additional --set arguments. You can add as many additional --set arguments as you need.

For example:

Default Ping Poller Configuration

The following table describes the default configuration parameters found in the Helm chart under configData for the microservice.

Name Default Value Possible Values Notes
LOG_LEVEL INFO FATAL, ERROR, WARN, INFO, DEBUG Worker level logging level used by application.
REDUNDANCY_POLL_PERIOD 5 Integer The number of seconds between status checks from the secondary microservice to the primary microservice.
REDUNDANCY_FAILOVER_THRESHOLD 4 Integer The number of times the primary microservice must fail checks before the secondary microservice becomes active.
REDUNDANCY_FALLBACK_THRESHOLD 1 Integer The number of times the primary microservice must succeed checks before the secondary microservice becomes inactive.
POLL_BY_IP true Bool Use IP Address for ping polling instead of hostname

Default Ping Poller Coordinator Configuration

The following table describes the default coordinator configuration parameters found in the Helm chart under configData for the microservice.

Name Default Value Possible Values Notes
LOG_LEVEL INFO FATAL, ERROR, WARN, INFO, DEBUG Coordinator level logging level used by application.
PING_COUNT "10" Integer Packet count to ping a device.
PING_TIMEOUT "4" Integer Time in seconds to timeout ping
PORT_COORDINATOR "" Integer Coordinator Port
GRPC_FALLBACK_USE_IP "" Text Connect to workers using ip address else fqdn
PULSAR_PING_CONTROL_OVERRIDE "" persistent://assure1/discovery/ping-poller-zoneX Overrides the pulsar topic from which Ping Poller requests are received. This is the same topic where Discovery Service sends the request. For example: ping-poller-zone1
REDUNDANCY_POLL_PERIOD 5 Integer The number of seconds between status checks from the secondary microservice to the primary microservice.
REDUNDANCY_FAILOVER_THRESHOLD 4 Integer The number of times the primary microservice must fail checks before the secondary microservice becomes active.
REDUNDANCY_FALLBACK_THRESHOLD 1 Integer The number of times the primary microservice must succeed checks before the secondary microservice becomes inactive.
PING_ASYNC_CASCADE 10 Integer Delay (in ms) between sending ping requests (avoids socket congestion)
DISCOVERY_WORKERS_PERCENTAGE 10 Integer Percentage of workers dedicated strictly to discovery tasks.
GRPC_IDLE_TIMEOUT_M 0 Integer Timeout for idle GRPC connections

Default Ping Poller Worker Configuration

The following table describes the default worker configuration parameters found in the Helm chart under configData for the microservice.

Name Default Value Possible Values Notes
LOG_LEVEL INFO FATAL, ERROR, WARN, INFO, DEBUG Worker level logging level used by application.
PORT_COORDINATOR "" Integer Coordinator Port
PORT_WORKER "" Integer Worker port
GRPC_GRACEFUL_CONN_TIME "" 60(default value) Before attempting to dial to coordinator, for specified time, try checking coordinator readiness.
PING_MIN_PACKET_SIZE "53" Integer Minimum packet size for pinging
METRICS_TOPIC "" Text Pulsar output topic for metrics
RCA_TOPIC "" Text Pulsar output topic for availability
PULSAR_DISCOVERY_CALLBACK_OVERRIDE "" persistent://assure1/discovery/discovery-service-zoneX value to override the default discovery callback topic
PING_TTL 0 (Auto) Integer Ping packets TTL
GRPC_IDLE_TIMEOUT_M 0 Timeout for idle grpc connections

Ping Poller Autoscaling Configuration

Autoscaling is supported for the Ping Poller microservice. See Configuring Autoscaling for general information and details about the standard autoscaling configurations.

The Ping Poller microservice also supports the additional configurations described in the following table.

Name Default Value Possible Values Notes
totalTargetsPerWorker 2000 Integer Number of targets that should be polled by each worker.

Ping Poller Self-Monitoring Metrics

The Ping Poller microservice exposes the self-monitoring metrics described in the following table to Prometheus. Each of the metrics in the table is prefixed with ping_coordinator prefix in the database. For example, the full metric name in the database for the first metric is ping_coordinator_acom_targets.

Metric Name Type Description
acom_targets Gauge The number of ACOM targets that are to be polled
polling_queue_length Gauge The length of the queue to be polled
discovery_queue_length Gauge The length of the discovery queue to be polled
total_availability_poll_cycle_time Gauge The total duration of the availability work done by all the workers
total_discovery_poll_cycle_time Gauge The total duration of the discovery work done polled by all the workers
polling_workers_count Gauge The number of polling workers being used
discovery_workers_count Gauge The number of discovery workers being used

Note:

Metric names in the database include a prefix that indicates the service that inserted them. The prefix is prom_ for metrics inserted by Prometheus. For example, acom_targets is stored as prom_acom_targets in the database.