Skip to content

Health Checks

X4Applegate edited this page Apr 14, 2026 · 1 revision

Health Checks

Applegate Monitor supports 8 health check types. Each server can run multiple checks simultaneously — for example, a web server might have both an HTTP check and a TCP port check.


General Settings

Setting Default Description
Poll interval 30000 ms How often checks run (global CHECK_INTERVAL env var, or per-server override)
Failure threshold 1 Number of consecutive failures before the server is marked down
History retention 90 days Check results older than 90 days are pruned automatically

Response Time Charting

Every check records a response time. The server detail view shows:

  • 24-hour response time chart — bucketed by hour, showing avg / min / max
  • Heartbeat history bar — last 90 check results shown as colored ticks (green = up, red = down)

Check Types

Ping (ICMP)

Sends an ICMP echo request and measures round-trip latency.

Requires: NET_RAW Linux capability on the container (cap_add: [NET_RAW] in Docker Compose).

Config fields:

  • host — target hostname or IP address

TCP Port

Opens a raw TCP connection to a host:port and measures connection time.

Config fields:

  • host — target hostname or IP address
  • port — TCP port number (e.g. 22, 443, 3306)

HTTP / HTTPS

Performs a full HTTP(S) request and checks the response status code.

Config fields:

  • url — full URL including scheme (e.g. https://example.com/health)
  • expected_status — expected HTTP status code (default: 200)

Additional features:

  • SSL certificate tracking — forces a fresh TLS handshake on every check (no session caching). Displays days until certificate expiry on the server detail view.
  • Certificate expiry is also available via the badge API (/api/badge/:id/cert-exp).
  • Response time measures total request time including TLS handshake.

DNS Record

Resolves a DNS record and optionally asserts its value.

Config fields:

  • host — hostname to resolve
  • record_typeA, AAAA, CNAME, MX, TXT, or NS
  • expected_value (optional) — if set, the resolved value must match this string for the check to pass

UDP Port

Sends a UDP probe to a host:port and waits for a response or timeout.

Config fields:

  • host — target hostname or IP address
  • port — UDP port number (e.g. 51820 for WireGuard)

Omada Gateway

Monitors a TP-Link Omada SDN gateway via the Omada Open API v6. Reports WAN status, link speed, uptime, and WAN IP.

Prerequisites:

  • An Omada controller must be added in the admin panel → Omada tab (requires Client ID, Client Secret, and controller base URL).

Config fields:

  • controller_id — the Omada controller configured in the admin panel
  • site — Omada site name
  • device_mac — MAC address of the gateway device

Omada LTE

Monitors a cellular/LTE backup WAN interface on an Omada gateway. Includes optional direct probe IP ping for signal verification.

Config fields:

  • controller_id — the Omada controller configured in the admin panel
  • site — Omada site name
  • device_mac — MAC address of the gateway device
  • probe_ip (optional) — IP address to ping directly via the LTE interface

Omada Device

Monitors the health status of any TP-Link Omada hardware device (switches, APs, etc.) via the Omada Open API v6.

Config fields:

  • controller_id — the Omada controller configured in the admin panel
  • site — Omada site name
  • device_mac — MAC address of the device

Square POS

Monitors Square payment terminal and location health via the Square API. Reports device status, online device count, and active/inactive state.

Prerequisites:

  • A Square account must be added in the admin panel with a valid Square API access token.

Config fields:

  • square_account_id — the Square account configured in the admin panel
  • location_id — Square location ID to monitor

Status Badge API

Each server exposes embeddable SVG status badges:

Endpoint Description
/api/badge/:id/status Up / Down / Degraded with color
/api/badge/:id/uptime?duration=24h|7d|30d Uptime % — green ≥99%, yellow ≥95%, red <95%
/api/badge/:id/ping Latest response time — green <150ms, yellow <400ms, red ≥400ms
/api/badge/:id/cert-exp SSL certificate expiry in days

Example (Markdown):

![Status](https://status.example.com/api/badge/1/status)
![Uptime](https://status.example.com/api/badge/1/uptime?duration=30d)

Clone this wiki locally