PingPollerd
Overview
The Unified Assurance Metric Ping Poller is the common ICMP availability and latency collection poller. This poller is device oriented and uses the default Latency, Packet Loss, Ping Jitter and/or Ping Jitter Utilization metric types.
Ping Poller Setup
-
Devices must exist in the Device Catalog for this application to be able to function. Devices can be created in several different ways:
-
Using the "Device Auto Discovery" application. See the application documentation for additional information:
-
Using the Manual Discovery UI:
-
Manually entering all values using the Devices UI:
-
-
Metrics must exist for the devices to be polled. Metrics can be created in several different ways:
-
The default rules for the "Metric Custom Poller Discovery Agent" application will create the metrics for the "Device" instance:
-
Using a polling policy to create metrics using whatever restrictions are needed. See the Polling Policies UI and "Metric Poller Discovery Agent" application documentation:
-
Using the Polling Assignments UI to manually select which devices and instances are processed. See the related documentation:
-
-
Enable the default Service, unless a specific configuration option is needed:
Default Service
Field | Value |
---|---|
Package Name | coreCollection-app |
Service Name | Metric Ping Latency Poller |
Service Program | bin/core/collection/PingPollerd |
Service Arguments | |
Service Description | Metric Poller used to poll Ping (ICMP) Availability & Response Times |
Failover Type | Standalone (Supported: Standalone, Primary/Backup, Cluster) |
Status | Disabled |
Privileged | (Checked) |
Default Configuration
Name | Value | Possible Values | Notes |
---|---|---|---|
CheckTime | 900 | Integer | How often (in seconds) where the application checks to see if there are any relevant changes. |
DeviceZoneID | Default First Zone | Integer | The poller will only retrieve devices in the specific zone. |
LogFile | logs/MetricPingPoller.log | Text, 255 characters | Relative path to Log File. |
LogLevel | ERROR | OFF, FATAL, ERROR, WARN, INFO, DEBUG | Logging level used by application. |
PacketSize | 64 | Integer | The size of the packet the poller will send, in bytes. |
PollTime | 300 | Integer | How often the poller will start a poll cycle, in seconds. |
Threads | 3 | Integer | Number of process threads created. The aggregator takes a third of this value (rounded up) for database threads unless overridden by the "DBThreads" application configuration. |
TimeOut | 1 | Integer | The time out for the ping request. |
DBThreads | Integer | Optional - Number of database threads to be created. If not specified, defaults to a third (rounded up) of "Threads" application configuration. | |
DeviceGroupID | Integer | Optional - If specified, the poller will only retrieve devices in the specific group. | |
MaxBatchSize | Integer | Optional - The maximum size of each batch handled per thread. By default, batches are sized by dividing the total number of devices to poll over the number of threads. As the number of devices increases, it may be desirable to limit this batch size to prevent certain denial of service limitations on your network. | |
PingCount | 10 | Integer | Optional - Number of times to ping the device. This is also used for multiple serial polling and packet loss calculation. NOTE We may ping up to an additional 2 times for more accuracy. |
PollByIP | Enabled | Enabled/Disabled | Optional - If enabled, the device IP address will be used to ping the device instead of the device DNS name. |
PreferIPv4 | Enabled | Enabled/Disabled | Optional - Controls whether or not to prefer IPv4 transport to communicate with Devices. This option is only considered if both IPv4 and IPv6 are available for a device. If this config is missing, IPv6 will be preferred. |
ThresholdThreads | Integer | Optional - Number of threshold threads to be created. Enabled the checking of thresholds in the application instead of the Default Threshold Engine. If not specified, application threshold checking is disabled. | |
SendAllViolations | Disabled | Enabled/Disabled | Optional - If enabled, thresholds will send violation notifications every poll cycle rather than only on state change. Requires 'ThresholdThreads' |
Best Practices
The following list shows the best practices for working with this application:
-
Ensure the following metric types have been configured for polling:
-
60 - Latency
-
61 - Packet Loss
-
62 - Ping Jitter
-
63 - Ping Jitter Utilization
-
-
Ensure when batching multiple devices per thread (default) there is potential based on hardware for processing overhead to be included in the Latency metric because pings are requested asynchronously per batch. This overhead can be reduced by either limiting the batch size with MaxBatchSize to reduce the number of devices pinged at once by the threads, but this will cause a longer poll cycle.
-
In cases where devices are reporting high packet loss but DEBUG logs show ping results as failed with code MALFORMED, this can indicate that too many threads are configured or too many devices are being pinged simultaneously. To troubleshoot this issue, you should try the following:
-
Reset Threads to the recommended value of 3 * (# of CPU Cores) if set greater.
-
Set MaxBatchSize to 64 / (# of CPU Cores) if device count to be polled is greater than 200. Note this can cause the poll cycle take longer.
-
Administration Details
The following list shows the technical details you will need for advanced administration of the application:
-
Package - coreCollection-app
-
Synopsis -
./PingPollerd [OPTIONS]
-
Options:
-c, --AppConfigID N Application Config ID (Service, Job, or Request ID) -?, -h, --Help Print usage and exit
-
Threaded - Multi-Threaded