Heartbeat endpoint

If the PingAccess server is running, the process of sending a request to the /pa/heartbeat.ping endpoint (or /<Application Context Root>/pa/heartbeat.ping if you have the Use context root as reserved resource base path check box enabled on your PingAccess application) returns an OK browser message and an HTTP 200 status. If the request times out or requires an extended amount of time to return, the server might be overloaded or experiencing other difficulties.

If a request requires more than two or three seconds to return, multiple factors in your PingAccess deployment might be responsible. Develop a baseline for the desired response time by testing the heartbeat endpoint of your deployment at various times. This endpoint can be useful when load balancing a cluster of PingAccess server instances. Some load balancers can alter the number of requests that are sent to a particular server based on the response code received, or the responsiveness of requests that are made to the heartbeat endpoint.

The output of the heartbeat can be modified to provide performance-related information, such as CPU and memory usage, along with response times. The following example shows the JSON data that is returned when the template is changed to show the memory, CPU, and response time in milliseconds.

The following is an example of JSON data showing memory, CPU, and response time in milliseconds:

{"items":[{ 
	"response.statistics.window.seconds": "5",
	"response.statistics.count": "1", 
	"response.time.statistics.90.percentile":
	"129", "response.time.statistics.mean": "129", 
	"response.time.statistics.max":"129", 
	"response.time.statistics.min": "129",
	"response.concurrency.statistics.90.percentile": "1",
	"response.concurrency.statistics.mean": "1",
	"response.concurrency.statistics.max": "1",
	"response.concurrency.statistics.min": "1", 
		"cpu.load": "15.53",
		"total.jvm.memory": "500.695 MB", 
		"free.jvm.memory": "215.339 MB",
		"used.jvm.memory": "285.356 MB", 
		"total.physical.system.memory": "17.18 GB",
		"total.free.physical.system.memory": "278.45 MB",
		"total.used.physical.system.memory": "16.901 GB", 
		"number.of.cpus": "8",
		"hostname": "jdasilva-r", 
		"open.client.connections": "1",
		"number.of.applications": "11", 
		"number.of.virtual.hosts": "6",
		"last.refresh.time": "1969-12-31T18:00:00.000Z" 
	}]} 

For more information, see Heartbeat endpoint.

Response time logging

By default, the audit logs record the processing time for each transaction. With audit logging enabled, you can identify the speed with which the PingAccess server processes web and API application transactions. Depending on your logging configuration, audit logging might not log any transactions. For more information, see Security audit logging.

The following example shows a default audit log with the following information:

  • Total roundtrip
  • Proxy roundtrip
  • Userinfo roundtrip

The following code example shows the processing times in milliseconds, highlighted in bold:

2019-12-15T17:23:12,192|GRmozOujPDDFct8RbtnfJw|tid:wUu9F0vDd9pZPKe4Oc5Ym_-RFCc..9r72.v8c0Y2CUA5qSpvcxKHgd7QoCp|
81 ms| 50 ms| 0 ms| servapp.ext.wal-ping.com [] /SimpleWebApi /*:3000| joe| Cookie| 127.0.0.1| GET| /SimpleWebApi/web/web.jsp| 200| | | Web-API| Root Resource| /*