Watchdog ships 15 built-in check types. Each type defines where it may run.
| Mode | Where the check runs |
|---|---|
| Dashboard | Only in the dashboard's worker container. The type needs a URL from the client record |
| Agent | Only on an agent. The type needs direct access to the machine |
| Dashboard or Agent | Network-level check that can run from either side |
| Check | Type identifier | Runner | Tests |
|---|---|---|---|
| HTTP Reachability | http |
Dashboard | Whether a URL returns an expected status code |
| HTTP Content | http_content |
Dashboard | Whether the response body contains or lacks given strings |
| SSL Certificate | ssl_cert |
Dashboard | Remaining validity of the TLS certificates of several hosts |
| DNS | dns |
Dashboard or Agent | Whether a host name resolves, optionally to an expected IP |
| TCP Port | tcp_port |
Dashboard or Agent | Whether a TCP port accepts connections |
| Redis | redis |
Dashboard or Agent | PING to a Redis server and a PONG reply |
| Database | database |
Dashboard or Agent | Whether a PDO connection can be established |
| Docker Container Health | docker |
Dashboard or Agent | Running and health state of a container |
| Docker Exec | docker_exec |
Dashboard or Agent | Exit code of a command inside a container |
| Disk Space | disk_space |
Agent | Usage of a mount point in percent |
| Load Average | load_average |
Agent | System load relative to the CPU count |
| Process Running | process |
Agent | Whether a process is running |
| Log File | log_file |
Agent | Freshness of a log file and a pattern inside it |
| File Age | file_age |
Agent | How long a file has gone unmodified |
| File Size | file_size |
Agent | Whether a file's size is within the allowed range |
Use Run now to start a check immediately.
UNKNOWN: A check returns UNKNOWN when it cannot run meaningfully, for example with missing configuration or a missing Docker socket. This does not trigger a failure email.WARN and FAIL: Both trigger a failure email on the change from OK or UNKNOWN, see Notifications.Timeout (seconds) field. TCP and Redis clamp the value to 1 to 60 seconds, Database to 1 to 30 seconds.The check system is extensible. A PHP class implementing CheckInterface and tagged watchdog.check appears in the selection automatically. See Writing Custom Checks.