You can make this call to any active PingAccess listener and on any node in a PingAccess cluster. For example, with default port configurations, a clustered console replica will respond to this endpoint on port 9000, and a clustered engine will respond to it on port 3000.

/pa/heartbeat.ping

This endpoint returns a short or detailed status for the target PingAccess server, based on the value of the enable.detailed.heartbeat.response parameter in run.properties. Load balancers can use this endpoint to determine the status of PingAccess.

Info:

Begin the URL with the server name and the PingAccess runtime port number. For example: https://hostname:3000/pa/heartbeat.ping.

If an error is returned, this indicates that the PingAccess instance associated with the endpoint is down.

If enable.detailed.heartbeat.response is set to false, the default value, and the PingAccess instance is running, the endpoint returns an HTTP 200 status and the text OK.

If enable.detailed.heartbeat.response is set to true and the PingAccess instance is running, a configurable status with additional details is returned. The response output format is an Apache Velocity template defined in PA_HOME/conf/template/heartbeat.page.json. You can modify this template to suit your needs. The following values are available.

Value Description
$monitor.getTotalJvmMemory('bytes'|'KB'|'MB'|'GB') Returns the total memory in the Java virtual machine (JVM). Specify 'bytes', 'KB', "MB', or 'GB' to specify the units. 'bytes' is the default if not specified.
$monitor.getUsedJvmMemory('bytes'|'KB'|'MB'|'GB') Returns the used memory in the JVM. Specify 'bytes', 'KB', "MB', or 'GB' to specify the units. 'bytes' is the default if not specified.
$monitor.getFreeJvmMemory('bytes'|'KB'|'MB'|'GB') Returns the free memory in the JVM. Specify 'bytes', 'KB', "MB', or 'GB' to specify the units. 'bytes' is the default if not specified.
$monitor.getTotalPhysicalSystemMemory('bytes'|'KB'|'MB'|'GB') Returns the total system memory. Specify 'bytes', 'KB', "MB', or 'GB' to specify the units. 'bytes' is the default if not specified.
$monitor.getTotalUsedPhysicalSystemMemory('bytes'|'KB'|'MB'|'GB') Returns the used system memory. Specify 'bytes', 'KB', "MB', or 'GB' to specify the units. 'bytes' is the default if not specified.
$monitor.getTotalFreePhysicalSystemMemory('bytes'|'KB'|'MB'|'GB') Returns the free system memory. Specify 'bytes', 'KB', "MB', or 'GB' to specify the units. 'bytes' is the default if not specified.
$monitor.getHostname() Returns the hostname for the system running PingAccess.
$monitor.getNumberOfCpus() Returns the number of CPU cores in the system.
$monitor.getCpuLoad('###.##') Returns the current CPU utilization. The parameter contains an optional format value. If the format is specified, the value returned is returned as a percentage value from 0%-100%, formatted using the Java DecimalFormat specification. If no format value is specified, then the value returned is a real number from 0 to 1 which represents the CPU utilization percentage. For example, a format value of "###.##" will return a value similar to "56.12", but no specified format would result in the value being returned as "0.5612".
$monitor.getOpenClientConnections() Returns the current number of clients connected to PingAccess.
$monitor.getNumberOfVirtualHosts() Returns the current number of configured virtual hosts in PingAccess.
$monitor.getNumberOfApplications() Returns the current number of configured applications in PingAccess.
$monitor.getNumberOfSites() Returns the current number of configured sites in the PingAccess configuration database. In a clustered environment, on the engine nodes, this number will reflect the number of sites associated with applications rather than the number of configured sites that show on the admin node. For more information, see Server Clustering documentation. This value is not included in the default template, but can be added by the system administrator if desired.
$monitor.getLastRefreshTime('yyyy/MM/dd HH:mm:ss') Returns the time the PingAccess configuration was last refreshed. The parameter specifies the date format to use; if no value is specified, the ISO 8601 date format is used. If the parameter is specified, the format used comes from the Joda DateTimeFormat specification.

The default content type for the output is application/json. However, you can specify a content type header using the $monitor.setContentType() line in the template.

If you update the enable.detailed.heartbeat.response value, you must restart PingAccess to make the new value take effect.

Calls to this endpoint can be logged in the audit log. You can enable the logging of heartbeat calls using the /httpConfig/monitoring administrative endpoint. For more information, see Administrative API endpoints.