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:
-
A microservice cluster is set up. See Microservice Cluster Setup.
-
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:
-
<namespace> is the namespace where you are deploying the microservice. The default namespace is a1-zone1-pri, but you can change the zone number and, when deploying to a redundant cluster, change pri to sec.
-
<WebFQDN> is the fully-qualified domain name of the primary presentation server for the cluster.
-
<microservice-release-name> is the name to use for the microservice instance. Oracle recommends using the microservice name (ping-poller) unless you are deploying multiple instances of the microservice to the same cluster.
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:
-
Set a parameter described in Default Ping Poller Configuration by adding --set configData.<parameter_name>=<parameter_value>. For example, --set configData.LOG_LEVEL=DEBUG.
-
Enable redundancy for the microservice by adding --set redundancy=enabled.
-
Disable autoscaling for the microservice by adding --set autoscaling.enabled=false.
-
Set the autoscaling parameter described in Ping Poller Autoscaling Configuration by adding --set autoscaling.<parameter_name>=<parameter_value>. For example, --set autoscaling.totalTargetsPerWorker=4000.
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.