Monitoring recommendations

To maximize availability and ensure consistent performance, Itential recommends the following monitoring approaches.

Basic monitoring

The /health/status route requires no login and can be used for basic monitoring. It is appropriate for use by a load balancer to determine if an individual node is healthy. Itential Platform returns 200 when healthy — any other response or lack of response should be interpreted as unhealthy. Set the timeout for this request to 1 second.

Effective with Itential Platform 2023.1, the GET /status API is deprecated. The replacement API, /health/status, reports the health of all apps and adapters.

Request:

GET /health/status HTTP/1.1
Host: some-iap-host:3000
Accept: /

Healthy response (all services running):

1{
2 "host": "automation-platform-20231-stable-0",
3 "serverId": "582672c5a088e6f0ca182723e1471805179faf272e1b5750e12bc06f962b13ee",
4 "serverName": null,
5 "services": [
6 { "service": "redis", "status": "running" },
7 { "service": "mongo", "status": "running" },
8 { "service": "vault", "status": "running" },
9 { "service": "rabbitmq", "status": "running" }
10 ],
11 "timestamp": 1711633372837,
12 "apps": "running",
13 "adapters": "running"
14}

The serverId and serverName values are customizable — modify them for your environment. A healthy response from Itential Platform 2023.2.x will not include "service":"rabbitmq".

Unhealthy response (degraded apps):

1{
2 "host": "automation-platform-20231-stable-0",
3 "serverId": "582672c5a088e6f0ca182723e1471805179faf272e1b5750e12bc06f962b13ee",
4 "serverName": null,
5 "services": [
6 { "service": "redis", "status": "running" },
7 { "service": "mongo", "status": "running" },
8 { "service": "vault", "status": "running" },
9 { "service": "rabbitmq", "status": "running" }
10 ],
11 "timestamp": 1711633372837,
12 "apps": "degraded",
13 "adapters": "running"
14}

Failed applications can be viewed from the Admin Essentials > Alerts dashboard.

An unhealthy response from Itential Platform 2023.2.x will not include "service":"rabbitmq".

Application and adapter monitoring

Itential also recommends monitoring individual applications and adapters. Both routes below require a valid session token.

Application monitoring

For each application in the results array, pay attention to the state field — if it does not say RUNNING, the application should be considered unhealthy. Track uptime, memoryUsage, and cpuUsage over time.

Request:

GET /health/applications?token=some-iap-token HTTP/1.1
Host: some-iap-host:3000
Accept: /

Response:

1{
2 "results": [
3 {
4 "id": "AdminEssentials",
5 "package_id": "@itential/app-admin_essentials",
6 "version": "3.5.64-2021.2.50.0",
7 "type": "Application",
8 "state": "RUNNING",
9 "uptime": 320.914691654,
10 "memoryUsage": {
11 "rss": 52662272,
12 "heapTotal": 29638656,
13 "heapUsed": 27756488,
14 "external": 38208460,
15 "arrayBuffers": 36697945
16 },
17 "cpuUsage": { "user": 1284858, "system": 167948 },
18 "pid": 15283
19 }
20 ]
21}

Adapter monitoring

For each adapter, pay attention to the state field and the additional connection.state field — anything other than ONLINE for connection.state should be considered unhealthy.

Request:

GET /health/adapters?token=some-iap-token HTTP/1.1
Host: some-iap-host:3000
Accept: /

Response:

1{
2 "results": [
3 {
4 "id": "local_aaa",
5 "package_id": "@itential/adapter-local_aaa",
6 "version": "4.3.1-2021.2.3.0",
7 "type": "Adapter",
8 "state": "RUNNING",
9 "connection": { "state": "ONLINE" },
10 "uptime": 804.227121682,
11 "memoryUsage": {
12 "rss": 62124032,
13 "heapTotal": 36909056,
14 "heapUsed": 34986384,
15 "external": 56421712,
16 "arrayBuffers": 54911197
17 },
18 "cpuUsage": { "user": 1989815, "system": 231054 },
19 "pid": 15568
20 }
21 ]
22}

SNMP traps

Itential Platform produces SNMP Traps that can be used for alerting when certain events occur. See SNMP Notification Types for more information.